FORMAT: 1A
HOST: https://avwx.rest/api

# AVWX

The AVWX REST API is a publically-available, open-source REST API for aviation weather.

## Authentication

AVWX uses bearer tokens for user authentication. Create an account at [account.avwx.rest](https://account.avwx.rest) to generate your token and include it in your requests.

The API looks for tokens in two places:

- `"Authorization"` header. The token value can have any prefix (`"TOKEN abcde"`, `"BEARER abcde"`, etc) or just the token value itself
- `"?token=abcde"` URL parameter

The header value will supercede the URL parameter if both are found. All examples in the documentation use the header method.

Some features require paid plans to be associated with the supplied token. Feature availability is listed on the [Account Page](https://account.avwx.rest).

## Flight Path Routing

This API can return results based on a given flight route. These points can be:

- ICAO station idents: KJFK, EGLL, PHNL
- IATA airport idents: MIA, LGA, HNL
- Navaids like VOR and NDB: ATL, ORL, PQ
- Lat,Lon coordinates: 30.35,-81.013

The flight path combines these elements with semicolons to look like:

`KLEX;ATL;30.2,-82.1;ORL;KMCO`

This path starts at Blue Grass Airport in Lexington, KY, down to the Atlanta VOR, a coordinate near Jacksonville, FL, the Orlando VOR, and ends at Orlando International Airport.

Unlike ICAO idents, navaid idents are not globally unique. AVWX determines the most likely coordinate pair based on the next known coordinate. If the final coordinate is still multiple choice, it will pick the two nearest ones and start backfilling. It is highly recommended to bookend each flight path with either ICAO idents or coordinate pairs, but VOR to VOR navigation will still work.

Because there are many overlaps between navaid and IATA codes and the navaids are more useful for flight routing purposes, IATA codes are deprioritized when calculating the flight path. It's recommended to use the airport's ICAO code or coordinates if known.

Each routing response will include the resolved coordinates used for determining the flight path.

## aviowiki Airport Data

AVWX has partnered with [aviowiki](https://www.aviowiki.com) to provide a reliable, constantly verified source of airport informaion. If you've added the [aviowiki addon](https://account.avwx.rest/plans) to your account, you'll instantly start receiving this new vetted data. This will replace the open source - but sometimes out-of-date - information compiled from [OurAirports](https://ourairports.com) and other locations. If you are using AVWX for mission-critical applications, it is highly reccomended that you enable this addon.

The served data includes general airport information and all landing surfaces including runways, helipads, etc. For more information, check out [aviowiki's API Docs](https://www.aviowiki.com/docs/airports/authenticated-api-endpoints/airport-data/). Additional fields can be requested by contacting us.

```json
{
  "icao": "KLEX",
  "iata": "LEX",
  "faa": "LEX",
  "localIdentifier": "LEX",
  "name": "Blue Grass Airport",
  "servedCity": "Lexington, KY",
  "servedCityGoverningDistrict": {
    "code": "US-KY",
    "name": "Kentucky",
    "administrativeType": "State"
  },
  "administrativeCity": null,
  "administrativeCityGoverningDistrict": null,
  "elevation": 298.4,
  "coordinates": {
    "latitude": 38.03675,
    "longitude": -84.6086389
  },
  "variation": -4.0,
  "country": {
    "iso2": "US",
    "iso3": "USA",
    "isoNumeric": 840,
    "name": "United States",
    "officialName": "United States of America",
    "localIdentifierName": null
  },
  "timeZone": "America/New_York",
  "perimeter": null,
  "type": "AIRPORT",
  "operator": "PUBLIC",
  "accessibleFor": [
    "TRAINING",
    "HELICOPTER",
    "MILITARY",
    "GENERAL_AVIATION",
    "BUSINESS_AVIATION",
    "SCHEDULED",
    "NON_SCHEDULED"
  ],
  "ifr": null,
  "nonScheduledPermission": "NONE",
  "nonScheduledPermissionNotes": null,
  "mandatoryHandling": null,
  "mandatoryQualification": null,
  "qualificationLink": null,
  "qualificationNotes": null,
  "weightLimit": null,
  "wingspanLimit": null,
  "paxLimit": null,
  "referenceWeatherStation": null,
  "aid": "APT-D9FK-4BKT",
  "runways": [
    {
      "helipad": null,
      "identifier": "04",
      "magneticBearing": 46.0,
      "trueBearing": 42.0,
      "standardPattern": true,
      "thresholdElevation": 286.51,
      "width": 45.72,
      "tora": 2134.82,
      "toda": 2134.82,
      "asda": 2134.82,
      "lda": 2012.9,
      "surface": "ASPHALT",
      "pcnNumerical": 59,
      "pcnType": "F",
      "pcnStrength": "B",
      "pcnTirePressure": "W",
      "pcnMethod": "T",
      "edgeLights": true,
      "thresholdLights": null,
      "endLights": null,
      "centerLights": true,
      "centerLightsSpacing": null,
      "touchDownZoneLights": true,
      "visualApproachSlopeIndicator": "P4L",
      "approachLightConfiguration": "MALSR",
      "instrumental": true,
      "precision": true,
      "separate": null,
      "thresholdCoordinates": {
        "latitude": 38.0276904,
        "longitude": -84.6151088
      },
      "slope": null,
      "grooved": true,
      "parent": "APT-D9FK-4BKT",
      "aid": "RWY-I42U-U7GL"
    },
    ...
  ]
}
```

## Station [/station/{ident}{?format}]

Returns station information for an airfield or other location by ICAO ident. This is the same information provided when incluing the `info` option with weather requests.

+ Parameters
    + ident: `KJFK` (string) - ICAO & IATA station code
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Get Station Information [GET]

This example shows station information for JKF International in New York City.

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "city": "New York",
            "country": "US",
            "elevation_ft": 13,
            "elevation_m": 4,
            "iata": "JFK",
            "icao": "KJFK",
            "latitude": 40.63980103,
            "longitude": -73.77890015,
            "name": "John F Kennedy International Airport",
            "note": "Manhattan, New York City, NYC, Idlewild",
            "reporting": true,
            "runways": [
                {
                    "length_ft": 14572,
                    "width_ft": 150,
                    "ident1": "13R",
                    "ident2": "31L"
                },
                {
                    "length_ft": 11351,
                    "width_ft": 150,
                    "ident1": "04L",
                    "ident2": "22R"
                },
                {
                    "length_ft": 10000,
                    "width_ft": 150,
                    "ident1": "13L",
                    "ident2": "31R"
                },
                {
                    "length_ft": 8400,
                    "width_ft": 200,
                    "ident1": "04R",
                    "ident2": "22L"
                }
            ],
            "state": "NY",
            "type": "large_airport",
            "website": "http://www.panynj.gov/CommutingTravel/airports/html/kennedy.html",
            "wiki": "http://en.wikipedia.org/wiki/John_F._Kennedy_International_Airport"
        }

## Nearest Stations [/station/near/{coord}{?n,airport,reporting,format}]

Returns the nearest stations to a coordinate pair. By default, these are only reporting stations, but this can be disabled to return smaller airports with non-reporting AWOS/ASOS as well. This endpoint is available to free plans, but the `n` parameter is limitted to 10 while paid plans can go up to 200.

+ Parameters
    + coord: `28.1,-81` (string) - Coordinate pair
    + n: 3 (number, optional) - Number of stations to return
        + Default: 10
    + airport (boolean, optional) - Only include airports
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations
        + Default: true
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Get Stations around a coordinate [GET]

This example returns reporting stations around Melbourne Beach, FL

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        [
            {
                "station": {
                    "city": "Melbourne",
                    "country": "US",
                    "elevation_ft": 33,
                    "elevation_m": 10,
                    "iata": "MLB",
                    "icao": "KMLB",
                    "latitude": 28.102800369262695,
                    "longitude": -80.64530181884766,
                    "name": "Melbourne International Airport",
                    "note": null,
                    "reporting": true,
                    "runways": [
                        {
                            "length_ft": 10181,
                            "width_ft": 150,
                            "ident1": "09R",
                            "ident2": "27L"
                        },
                        {
                            "length_ft": 6000,
                            "width_ft": 150,
                            "ident1": "09L",
                            "ident2": "27R"
                        },
                        {
                            "length_ft": 3001,
                            "width_ft": 75,
                            "ident1": "05",
                            "ident2": "23"
                        }
                    ],
                    "state": "FL",
                    "type": "medium_airport",
                    "website": null,
                    "wiki": "http://en.wikipedia.org/wiki/Melbourne_International_Airport"
                },
                "coordinate_distance": 0.35470923554481676,
                "nautical_miles": 18.786513433151878,
                "miles": 21.619133558889384,
                "kilometers": 34.79262287819728
            },
            {
                "station": {
                    "city": "Cocoa Beach",
                    "country": "US",
                    "elevation_ft": 8,
                    "elevation_m": 2,
                    "iata": "COF",
                    "icao": "KCOF",
                    "latitude": 28.2348995209,
                    "longitude": -80.6100997925,
                    "name": "Patrick Air Force Base",
                    "note": "Naval Air Station Banana River",
                    "reporting": true,
                    "runways": [
                        {
                            "length_ft": 9023,
                            "width_ft": 200,
                            "ident1": "03",
                            "ident2": "21"
                        },
                        {
                            "length_ft": 4000,
                            "width_ft": 200,
                            "ident1": "11",
                            "ident2": "29"
                        }
                    ],
                    "state": "FL",
                    "type": "medium_airport",
                    "website": "http://www.patrick.af.mil/",
                    "wiki": "http://en.wikipedia.org/wiki/Patrick_Air_Force_Base"
                },
                "coordinate_distance": 0.41257732917308576,
                "nautical_miles": 22.16988896743564,
                "miles": 25.51265258868881,
                "kilometers": 41.05863436769081
            },
            {
                "station": {
                    "city": "Orlando",
                    "country": "US",
                    "elevation_ft": 96,
                    "elevation_m": 29,
                    "iata": "MCO",
                    "icao": "KMCO",
                    "latitude": 28.429399490356445,
                    "longitude": -81.30899810791016,
                    "name": "Orlando International Airport",
                    "note": "Disney World,Epcot Center",
                    "reporting": true,
                    "runways": [
                        {
                            "length_ft": 12005,
                            "width_ft": 200,
                            "ident1": "18L",
                            "ident2": "36R"
                        },
                        {
                            "length_ft": 12004,
                            "width_ft": 200,
                            "ident1": "18R",
                            "ident2": "36L"
                        },
                        {
                            "length_ft": 10000,
                            "width_ft": 150,
                            "ident1": "17R",
                            "ident2": "35L"
                        },
                        {
                            "length_ft": 9000,
                            "width_ft": 150,
                            "ident1": "17L",
                            "ident2": "35R"
                        }
                    ],
                    "state": "FL",
                    "type": "large_airport",
                    "website": "http://www.orlandoairports.net/",
                    "wiki": "http://en.wikipedia.org/wiki/Orlando_International_Airport"
                },
                "coordinate_distance": 0.4516457183890284,
                "nautical_miles": 25.654425899340257,
                "miles": 29.522586075803655,
                "kilometers": 47.51199676557816
            }
        ]

## Station Search [/search/station{?text,n,airport,reporting,format}]

Text search for stations by ICAO, IATA, name, city, and state. By default, these are only reporting stations, but this can be disabled to return smaller airports with non-reporting AWOS/ASOS as well.

+ Parameters
    + text: `lihue%20hi` (string) - Search text
    + n: 2 (number, optional) - Max results to return. Smaller numbers are more likely to not reach max
        + Default: 10
    + airport (boolean, optional) - Only include airports
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations
        + Default: true
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Get stations via text search [GET]

This example returns reporting stations for "lihue hi"

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        [
            {
                "city": "Lihue",
                "country": "US",
                "elevation_ft": 153,
                "elevation_m": 47,
                "iata": "LIH",
                "icao": "PHLI",
                "latitude": 21.97599983215332,
                "longitude": -159.33900451660156,
                "name": "Lihue Airport",
                "note": null,
                "reporting": true,
                "runways": [
                    {
                        "length_ft": 6500,
                        "width_ft": 150,
                        "surface": "asphalt",
                        "lights": true,
                        "ident1": "03",
                        "ident2": "21",
                        "bearing1": 45.0,
                        "bearing2": 225.0
                    },
                    {
                        "length_ft": 6500,
                        "width_ft": 150,
                        "surface": "asphalt",
                        "lights": true,
                        "ident1": "17",
                        "ident2": "35",
                        "bearing1": 180.0,
                        "bearing2": 360.0
                    }
                ],
                "state": "HI",
                "type": "medium_airport",
                "website": null,
                "wiki": "https://en.wikipedia.org/wiki/Lihu'e_Airport"
            },
            {
                "city": "Honolulu",
                "country": "US",
                "elevation_ft": 13,
                "elevation_m": 4,
                "iata": "HNL",
                "icao": "PHNL",
                "latitude": 21.32062,
                "longitude": -157.924228,
                "name": "Daniel K Inouye International Airport",
                "note": "Hickam Air Force Base, HIK, PHIK, KHNL, Honolulu International",
                "reporting": true,
                "runways": [
                    {
                        "length_ft": 12300,
                        "width_ft": 150,
                        "surface": "asphalt",
                        "lights": false,
                        "ident1": "08L",
                        "ident2": "26R",
                        "bearing1": 90.0,
                        "bearing2": 270.0
                    },
                    {
                        "length_ft": 12000,
                        "width_ft": 200,
                        "surface": "asphalt",
                        "lights": false,
                        "ident1": "08R",
                        "ident2": "26L",
                        "bearing1": 90.0,
                        "bearing2": 270.0
                    },
                    {
                        "length_ft": 9000,
                        "width_ft": 150,
                        "surface": "asphalt",
                        "lights": false,
                        "ident1": "04R",
                        "ident2": "22L",
                        "bearing1": 53.0,
                        "bearing2": 233.0
                    },
                    {
                        "length_ft": 6952,
                        "width_ft": 150,
                        "surface": "asphalt",
                        "lights": false,
                        "ident1": "04L",
                        "ident2": "22R",
                        "bearing1": 53.0,
                        "bearing2": 233.0
                    },
                    {
                        "length_ft": 5000,
                        "width_ft": 300,
                        "surface": "water",
                        "lights": false,
                        "ident1": "08W",
                        "ident2": "26W",
                        "bearing1": 91.0,
                        "bearing2": 271.0
                    },
                    {
                        "length_ft": 3000,
                        "width_ft": 150,
                        "surface": "water",
                        "lights": false,
                        "ident1": "04W",
                        "ident2": "22W",
                        "bearing1": 51.0,
                        "bearing2": 231.0
                    }
                ],
                "state": "HI",
                "type": "large_airport",
                "website": "http://airports.hawaii.gov/hnl/",
                "wiki": "https://en.wikipedia.org/wiki/Daniel_K._Inouye_International_Airport"
            },
            {
                "city": "Kekaha",
                "country": "US",
                "elevation_ft": 23,
                "elevation_m": 7,
                "iata": "BKH",
                "icao": "PHBK",
                "latitude": 22.022800445599998,
                "longitude": -159.785003662,
                "name": "Barking Sands Airport",
                "note": "Pacific Missle Range Facility Barking Sands, Kauai",
                "reporting": true,
                "runways": [
                    {
                        "length_ft": 6006,
                        "width_ft": 146,
                        "surface": "asphalt",
                        "lights": true,
                        "ident1": "16",
                        "ident2": "34",
                        "bearing1": 170.0,
                        "bearing2": 350.0
                    }
                ],
                "state": "HI",
                "type": "medium_airport",
                "website": null,
                "wiki": "https://en.wikipedia.org/wiki/Pacific_Missile_Range_Facility"
            }
        ]

## Station Routing [/path/station{?route,distance,format}]

Find reporting stations along a flight path. See notes on routing above.

+ Parameters
    + route: `KMCO;ORL;KDAB` (string) - Flight route with ICAO, navaid, and coordinate components
    + distance: 5 (number) - Distance in statue miles from route centerline
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Get stations along a flight path [GET]

This example returns reporting stations along a flight path from Orlando to Daytona Beach, FL.

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2021-04-01T17:42:48.831526Z",
                "stations_updated": "2021-03-26"
            },
            "route": [
                {
                    "lat": 28.429399490356445,
                    "lon":-81.30899810791016,
                    "repr": "KMCO"
                },
                {
                    "lat": 28.542699813842773,
                    "lon": -81.33499908447266,
                    "repr": "ORL"
                },
                {
                    "lat": 29.179899,
                    "lon": -81.058098,
                    "repr": "KDAB"
                }
            ],
            "results": [
                {
                    "city": "Orlando",
                    "country": "US",
                    "elevation_ft": 113,
                    "elevation_m": 34,
                    "iata": "ORL",
                    "icao": "KORL",
                    "latitude": 28.5455,
                    "longitude": -81.332901,
                    "name": "Orlando Executive Airport",
                    "note": "Herndon Airport, Orlando Executive Airport, KORL, ORL, Orlando Municipal Airport, Orlando Army Air Base, Orlando Air Force Base, Naval Training Center Orlando",
                    "reporting": true,
                    "runways": [
                        {
                            "length_ft": 6003,
                            "width_ft": 150,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "07",
                            "ident2": "25",
                            "bearing1": 67.0,
                            "bearing2": 247.0
                        },
                        {
                            "length_ft": 4638,
                            "width_ft": 100,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "13",
                            "ident2": "31",
                            "bearing1": 130.8,
                            "bearing2": 310.8
                        }
                    ],
                    "state": "FL",
                    "type": "small_airport",
                    "website": null,
                    "wiki": "https://en.wikipedia.org/wiki/Orlando_Executive_Airport"
                },
                {
                    "city": "Orlando",
                    "country": "US",
                    "elevation_ft": 96,
                    "elevation_m": 29,
                    "iata": "MCO",
                    "icao": "KMCO",
                    "latitude": 28.429399490356445,
                    "longitude": -81.30899810791016,
                    "name": "Orlando International Airport",
                    "note": "Disney World,Epcot Center",
                    "reporting": true,
                    "runways": [
                        {
                            "length_ft": 12005,
                            "width_ft": 200,
                            "surface": "concrete",
                            "lights": true,
                            "ident1": "18L",
                            "ident2": "36R",
                            "bearing1": 179.0,
                            "bearing2": 359.0
                        },
                        {
                            "length_ft": 12004,
                            "width_ft": 200,
                            "surface": "concrete",
                            "lights": true,
                            "ident1": "18R",
                            "ident2": "36L",
                            "bearing1": 179.0,
                            "bearing2": 359.0
                        },
                        {
                            "length_ft": 10000,
                            "width_ft": 150,
                            "surface": "concrete",
                            "lights": true,
                            "ident1": "17R",
                            "ident2": "35L",
                            "bearing1": 179.0,
                            "bearing2": 359.0
                        },
                        {
                            "length_ft": 9000,
                            "width_ft": 150,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "17L",
                            "ident2": "35R",
                            "bearing1": 179.5,
                            "bearing2": 359.5
                        }
                    ],
                    "state": "FL",
                    "type": "large_airport",
                    "website": "http://www.orlandoairports.net/",
                    "wiki": "https://en.wikipedia.org/wiki/Orlando_International_Airport"
                },
                {
                    "city": "Orlando",
                    "country": "US",
                    "elevation_ft": 55,
                    "elevation_m": 17,
                    "iata": "SFB",
                    "icao": "KSFB",
                    "latitude": 28.777599334716797,
                    "longitude": -81.23750305175781,
                    "name": "Orlando Sanford International Airport",
                    "note": null,
                    "reporting": true,
                    "runways": [
                        {
                            "length_ft": 9600,
                            "width_ft": 150,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "09L",
                            "ident2": "27R",
                            "bearing1": 90.0,
                            "bearing2": 270.0
                        },
                        {
                            "length_ft": 6003,
                            "width_ft": 150,
                            "surface": "concrete",
                            "lights": true,
                            "ident1": "18",
                            "ident2": "36",
                            "bearing1": 180.0,
                            "bearing2": 360.0
                        },
                        {
                            "length_ft": 3578,
                            "width_ft": 75,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "09C",
                            "ident2": "27C",
                            "bearing1": 90.0,
                            "bearing2": 270.0
                        },
                        {
                            "length_ft": 3500,
                            "width_ft": 75,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "09R",
                            "ident2": "27L",
                            "bearing1": 89.9,
                            "bearing2": 269.9
                        }
                    ],
                    "state": "FL",
                    "type": "large_airport",
                    "website": null,
                    "wiki": "https://en.wikipedia.org/wiki/Orlando_Sanford_International_Airport"
                },
                {
                    "city": "Daytona Beach",
                    "country": "US",
                    "elevation_ft": 34,
                    "elevation_m": 10,
                    "iata": "DAB",
                    "icao": "KDAB",
                    "latitude": 29.179899,
                    "longitude": -81.058098,
                    "name": "Daytona Beach International Airport",
                    "note": null,
                    "reporting": true,
                    "runways": [
                        {
                            "length_ft": 10500,
                            "width_ft": 150,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "07L",
                            "ident2": "25R",
                            "bearing1": 65.0,
                            "bearing2": 245.0
                        },
                        {
                            "length_ft": 6001,
                            "width_ft": 150,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "16",
                            "ident2": "34",
                            "bearing1": 157.0,
                            "bearing2": 337.0
                        },
                        {
                            "length_ft": 3195,
                            "width_ft": 100,
                            "surface": "asphalt",
                            "lights": true,
                            "ident1": "07R",
                            "ident2": "25L",
                            "bearing1": 65.0,
                            "bearing2": 245.0
                        }
                    ],
                    "state": "FL",
                    "type": "large_airport",
                    "website": null,
                    "wiki": "https://en.wikipedia.org/wiki/Daytona_Beach_International_Airport"
                }
            ]
        }

## METAR [/metar/{location}{?options,airport,reporting,format,onfail}]

METAR reports are surface observations for a particular airfield or other station location. There are two standard formats: International and North American. The parser works with both, but it is up to the developer to do the correct interpretation of the data. Use the 'Units' key for labling and conversions.

Field notes:

- Relative humidity is a percentage coded as 0 to 1
- Pressure and density altitude of the airport are always returned in feet to match with cloud layers. You may want to convert into meters when displaying to your users

+ Parameters
    + location: `KJFK` (string) - ICAO & IATA station code or coordinate pair
        + Examples: `EGLL`, `51.47,-0.4`
    + options (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + airport (boolean, optional) - Only include airports when performing a coordinate search
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations when performing a coordinate search
        + Default: true
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get METAR Report [GET]

Get the METAR for a specific station by ICAO & IATA station code or a lat,lon coordinate pair. The API will return the station nearest to those coordinates. Include `info` in the options to get details about the selected station.

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-04-03T16:50:17.558193+00:00Z"
            },
            "altimeter": {
                "repr": "A2966",
                "value": 29.66,
                "spoken": "two nine point six six"
            },
            "clouds": [
                {
                    "repr": "FEW024",
                    "type": "FEW",
                    "altitude": 24,
                    "modifier": null,
                    "direction": null
                },
                {
                    "repr": "BKN036",
                    "type": "BKN",
                    "altitude": 36,
                    "modifier": null,
                    "direction": null
                },
                {
                    "repr": "OVC046",
                    "type": "OVC",
                    "altitude": 46,
                    "modifier": null,
                    "direction": null
                }
            ],
            "flight_rules": "VFR",
            "other": [],
            "sanitized": "KJFK 031551Z 35021G29KT 10SM -RA FEW024 BKN036 OVC046 10/07 A2966 RMK AO2 PK WND 36029/1550 RAB10 SLP042 P0000 T01000067",
            "visibility": {
                "repr": "10",
                "value": 10,
                "spoken": "one zero"
            },
            "wind_direction": {
                "repr": "350",
                "value": 350,
                "spoken": "three five zero"
            },
            "wind_gust": {
                "repr": "29",
                "value": 29,
                "spoken": "two nine"
            },
            "wind_speed": {
                "repr": "21",
                "value": 21,
                "spoken": "two one"
            },
            "wx_codes": [
                {
                    "repr": "-RA",
                    "value": "Light Rain"
                }
            ],
            "raw": "KJFK 031551Z 35021G29KT 10SM -RA FEW024 BKN036 OVC046 10/07 A2966 RMK AO2 PK WND 36029/1550 RAB10 SLP042 P0000 T01000067",
            "station": "KJFK",
            "time": {
                "repr": "031551Z",
                "dt": "2020-04-03T15:51:00+00:00Z"
            },
            "remarks": "RMK AO2 PK WND 36029/1550 RAB10 SLP042 P0000 T01000067",
            "dewpoint": {
                "repr": "07",
                "value": 7,
                "spoken": "seven"
            },
            "relative_humidity": 0.7994238789303805,
            "remarks_info": {
                "maximum_temperature_6": null,
                "minimum_temperature_6": null,
                "pressure_tendency": null,
                "precip_36_hours": null,
                "precip_24_hours": null,
                "sunshine_minutes": null,
                "codes": [
                    {
                        "repr": "AO2",
                        "value": "Automated with precipitation sensor"
                    },
                    {
                        "repr": "P0000",
                        "value": "Trace amount of rain in the last hour"
                    },
                    {
                        "repr": "RAB10",
                        "value": "Rain began at :10"
                    }
                ],
                "dewpoint_decimal": {
                    "repr": "0067",
                    "value": 6.7,
                    "spoken": "six point seven"
                },
                "maximum_temperature_24": null,
                "minimum_temperature_24": null,
                "precip_hourly": null,
                "sea_level_pressure": {
                    "repr": "SLP042",
                    "value": 1004.2,
                    "spoken": "one zero zero four point two"
                },
                "snow_depth": null,
                "temperature_decimal": {
                    "repr": "0100",
                    "value": 10.0,
                    "spoken": "one zero point zero"
                }
            },
            "runway_visibility": [],
            "temperature": {
                "repr": "10",
                "value": 10,
                "spoken": "one zero"
            },
            "wind_variable_direction": [],
            "density_altitude": -324,
            "pressure_altitude": 273,
            "units": {
                "accumulation": "in",
                "altimeter": "inHg",
                "altitude": "ft",
                "temperature": "C",
                "visibility": "sm",
                "wind_speed": "kt"
            }
        }

## Parse METAR [/parse/metar{?options,format}]

Parses a METAR report supplied by the user.

+ Parameters

    + options: `translate` (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Parse a Given METAR [POST]

Parse a user-supplied METAR included as the plain text body of the request. Note that the parsed timestamp may differ from the actual release date of the given report depending on how old the report is. AVWX does it's best to provide a full timestamp even though METARs don't include the year and month.

+ Request (text/plain)

    + Headers
    
            Authorization: Token my_secret_api_token

    + Body

            PHKO 181753Z 28004KT 6SM HZ SCT022 27/21 A3005 RMK AO2 SLP178 T02670206 10267 20239 53009

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-04-03T18:36:34.255787+00:00Z"
            },
            "altimeter": {
                "repr": "A3005",
                "value": 30.05,
                "spoken": "three zero point zero five"
            },
            "clouds": [
                {
                    "repr": "SCT022",
                    "type": "SCT",
                    "altitude": 22,
                    "modifier": null,
                    "direction": null
                }
            ],
            "flight_rules": "VFR",
            "other": [],
            "sanitized": "PHKO 181753Z 28004KT 6SM HZ SCT022 27/21 A3005 RMK AO2 SLP178 T02670206 10267 20239 53009",
            "visibility": {
                "repr": "6",
                "value": 6,
                "spoken": "six"
            },
            "wind_direction": {
                "repr": "280",
                "value": 280,
                "spoken": "two eight zero"
            },
            "wind_gust": null,
            "wind_speed": {
                "repr": "04",
                "value": 4,
                "spoken": "four"
            },
            "wx_codes": [
                {
                    "repr": "HZ",
                    "value": "Haze"
                }
            ],
            "raw": "PHKO 181753Z 28004KT 6SM HZ SCT022 27/21 A3005 RMK AO2 SLP178 T02670206 10267 20239 53009",
            "station": "PHKO",
            "time": {
                "repr": "181753Z",
                "dt": "2020-03-18T17:53:00+00:00Z"
            },
            "remarks": "RMK AO2 SLP178 T02670206 10267 20239 53009",
            "dewpoint": {
                "repr": "21",
                "value": 21,
                "spoken": "two one"
            },
            "relative_humidity": 0.6922556897462213,
            "remarks_info": {
                "maximum_temperature_6": {
                    "repr": "10267",
                    "value": 26.7,
                    "spoken": "two six point seven"
                },
                "minimum_temperature_6": {
                    "repr": "20239",
                    "value": 23.9,
                    "spoken": "two three point nine"
                },
                "pressure_tendency": {
                    "repr": "53009",
                    "tendency": "Decreasing or steady, then increasing",
                    "change": 0.9
                },
                "precip_36_hours": null,
                "precip_24_hours": null,
                "sunshine_minutes": null,
                "codes": [
                {
                    "repr": "AO2",
                    "value": "Automated with precipitation sensor"
                }
                ],
                "dewpoint_decimal": {
                    "repr": "0206",
                    "value": 20.6,
                    "spoken": "two zero point six"
                },
                "maximum_temperature_24": null,
                "minimum_temperature_24": null,
                "precip_hourly": null,
                "sea_level_pressure": {
                    "repr": "SLP178",
                    "value": 1017.8,
                    "spoken": "one zero one seven point eight"
                },
                "snow_depth": null,
                "temperature_decimal": {
                    "repr": "0267",
                    "value": 26.7,
                    "spoken": "two six point seven"
                }
            },
            "runway_visibility": [],
            "temperature": {
                "repr": "27",
                "value": 27,
                "spoken": "two seven"
            },
            "wind_variable_direction": [],
            "density_altitude": 1332,
            "pressure_altitude": -83,
            "translations": {
                "altimeter": "30.05 inHg (1018 hPa)",
                "clouds": "Scattered clouds at 2200ft - Reported AGL",
                "wx_codes": "Haze",
                "visibility": "6sm (9.7km)",
                "dewpoint": "21°C (70°F)",
                "remarks": {
                    "AO2": "Automated with precipitation sensor",
                    "SLP178": "Sea level pressure: 1017.8 hPa",
                    "T02670206": "Temperature 26.7°C and dewpoint 20.6°C",
                    "10267": "6-hour maximum temperature 26.7°C",
                    "20239": "6-hour minimum temperature 23.9°C",
                    "53009": "3-hour pressure difference: +/- 0.9 mb - Decreasing or steady, then increasing"
                },
                "temperature": "27°C (81°F)",
                "wind": "W-280 at 4kt"
            }
        }

## TAF [/taf/{location}{?options,airport,reporting,format,onfail}]

TAF reports are atmospheric conditions for an area within five nautical miles of a particular airfield or other station location. Unlike METAR which only has two standard formats, TAF reports vary considderably more based on their geography. For example, Oceania TAF reports include two unique keys: Temp-List and Alt-List.

+ Parameters
    + location: `KJFK` (string) - ICAO & IATA station code or coordinate pair
        + Examples: `EGLL`, `51.47,-0.4`
    + options: `summary` (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + airport (boolean, optional) - Only include airports when performing a coordinate search
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations when performing a coordinate search
        + Default: true
    + format (string, optional) - Desired response format
        + supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get TAF Report [GET]

Get the TAF for a specific station by ICAO & IATA station code or a lat,lon coordinate pair. The API will return the station nearest to those coordinates. Include `info` in the options to get details about the selected station.

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-04-03T18:52:16.840897+00:00Z"
            },
            "raw": "KJFK 031720Z 0318/0424 34017G26KT P6SM -RA OVC025 FM032100 35016G25KT P6SM OVC025 FM040000 01014G19KT P6SM OVC025 FM041500 03011KT P6SM BKN035 FM041900 05007KT P6SM BKN035 FM042000 08006KT P6SM BKN035 FM042200 11006KT P6SM BKN035",
            "station": "KJFK",
            "time": {
                "repr": "031720Z",
                "dt": "2020-04-03T17:20:00+00:00Z"
            },
            "remarks": "",
            "forecast": [
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "OVC025",
                            "type": "OVC",
                            "altitude": 25,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "0318/0424 34017G26KT P6SM -RA OVC025",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "340",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_gust": {
                        "repr": "26",
                        "value": 26,
                        "spoken": "two six"
                    },
                    "wind_speed": {
                        "repr": "17",
                        "value": 17,
                        "spoken": "one seven"
                    },
                    "wx_codes": [
                        {
                            "repr": "-RA",
                            "value": "Light Rain"
                        }
                    ],
                    "end_time": {
                        "repr": "0321",
                        "dt": "2020-04-03T21:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "0318/0424 34017G26KT P6SM -RA OVC025",
                    "start_time": {
                        "repr": "0318",
                        "dt": "2020-04-03T18:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null,
                    "summary": "Winds NNW-340 at 17kt gusting to 26kt, Vis greater than 6sm, Light Rain, Overcast layer at 2500ft"
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "OVC025",
                            "type": "OVC",
                            "altitude": 25,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "FM032100 35016G25KT P6SM OVC025",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "350",
                        "value": 350,
                        "spoken": "three five zero"
                    },
                    "wind_gust": {
                        "repr": "25",
                        "value": 25,
                        "spoken": "two five"
                    },
                    "wind_speed": {
                        "repr": "16",
                        "value": 16,
                        "spoken": "one six"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "0400",
                        "dt": "2020-04-04T00:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM032100 35016G25KT P6SM OVC025",
                    "start_time": {
                        "repr": "0321",
                        "dt": "2020-04-03T21:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null,
                    "summary": "Winds N-350 at 16kt gusting to 25kt, Vis greater than 6sm, Overcast layer at 2500ft"
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "OVC025",
                            "type": "OVC",
                            "altitude": 25,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "FM040000 01014G19KT P6SM OVC025",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "010",
                        "value": 10,
                        "spoken": "zero one zero"
                    },
                    "wind_gust": {
                        "repr": "19",
                        "value": 19,
                        "spoken": "one nine"
                    },
                    "wind_speed": {
                        "repr": "14",
                        "value": 14,
                        "spoken": "one four"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "0415",
                        "dt": "2020-04-04T15:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM040000 01014G19KT P6SM OVC025",
                    "start_time": {
                        "repr": "0400",
                        "dt": "2020-04-04T00:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null,
                    "summary": "Winds N-010 at 14kt gusting to 19kt, Vis greater than 6sm, Overcast layer at 2500ft"
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "BKN035",
                            "type": "BKN",
                            "altitude": 35,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "FM041500 03011KT P6SM BKN035",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "030",
                        "value": 30,
                        "spoken": "zero three zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "11",
                        "value": 11,
                        "spoken": "one one"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "0419",
                        "dt": "2020-04-04T19:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM041500 03011KT P6SM BKN035",
                    "start_time": {
                        "repr": "0415",
                        "dt": "2020-04-04T15:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null,
                    "summary": "Winds NNE-030 at 11kt, Vis greater than 6sm, Broken layer at 3500ft"
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "BKN035",
                            "type": "BKN",
                            "altitude": 35,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "FM041900 05007KT P6SM BKN035",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "050",
                        "value": 50,
                        "spoken": "zero five zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "07",
                        "value": 7,
                        "spoken": "seven"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "0420",
                        "dt": "2020-04-04T20:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM041900 05007KT P6SM BKN035",
                    "start_time": {
                        "repr": "0419",
                        "dt": "2020-04-04T19:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null,
                    "summary": "Winds NE-050 at 7kt, Vis greater than 6sm, Broken layer at 3500ft"
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "BKN035",
                            "type": "BKN",
                            "altitude": 35,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "FM042000 08006KT P6SM BKN035",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "080",
                        "value": 80,
                        "spoken": "zero eight zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "06",
                        "value": 6,
                        "spoken": "six"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "0422",
                        "dt": "2020-04-04T22:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM042000 08006KT P6SM BKN035",
                    "start_time": {
                        "repr": "0420",
                        "dt": "2020-04-04T20:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null,
                    "summary": "Winds E-080 at 6kt, Vis greater than 6sm, Broken layer at 3500ft"
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "BKN035",
                            "type": "BKN",
                            "altitude": 35,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "FM042200 11006KT P6SM BKN035",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "110",
                        "value": 110,
                        "spoken": "one one zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "06",
                        "value": 6,
                        "spoken": "six"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "0424",
                        "dt": "2020-04-04T00:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM042200 11006KT P6SM BKN035",
                    "start_time": {
                        "repr": "0422",
                        "dt": "2020-04-04T22:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null,
                    "summary": "Winds ESE-110 at 6kt, Vis greater than 6sm, Broken layer at 3500ft"
                }
            ],
            "start_time": {
                "repr": "0318",
                "dt": "2020-04-03T18:00:00+00:00Z"
            },
            "end_time": {
                "repr": "0424",
                "dt": "2020-04-04T00:00:00+00:00Z"
            },
            "max_temp": "",
            "min_temp": "",
            "alts": null,
            "temps": null,
            "units": {
                "altimeter": "inHg",
                "altitude": "ft",
                "temperature": "C",
                "visibility": "sm",
                "wind_speed": "kt"
            }
        }

## Parse TAF [/parse/taf{?options,format}]

Parses a TAF report supplied by the user.

+ Parameters

    + options: `translate` (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Parse a Given TAF [POST]

Parse a user-supplied TAF included as the plain text body of the request. Note that the parsed timestamp may differ from the actual release date of the given report depending on how old the report is. AVWX does it's best to provide a full timestamp even though TAFs don't include the year and month.

+ Request (text/plain)

    + Headers
    
            Authorization: Token my_secret_api_token

    + Body

            PHKO 181735Z 1818/1918 VRB03KT P6SM FEW035 FM182000 20010KT P6SM FEW030 SCT060 FM190400 10007KT P6SM FEW030 BKN050 FM191200 VRB03KT P6SM SCT030

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-04-03T19:08:08.406217+00:00Z"
            },
            "raw": "PHKO 181735Z 1818/1918 VRB03KT P6SM FEW035 FM182000 20010KT P6SM FEW030 SCT060 FM190400 10007KT P6SM FEW030 BKN050 FM191200 VRB03KT P6SM SCT030",
            "station": "PHKO",
            "time": {
                "repr": "181735Z",
                "dt": "2020-03-18T17:35:00+00:00Z"
            },
            "remarks": "",
            "forecast": [
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "FEW035",
                            "type": "FEW",
                            "altitude": 35,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "1818/1918 VRB03KT P6SM FEW035",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "VRB",
                        "value": null,
                        "spoken": "variable"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "03",
                        "value": 3,
                        "spoken": "three"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "1820",
                        "dt": "2020-03-18T20:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "1818/1918 VRB03KT P6SM FEW035",
                    "start_time": {
                        "repr": "1818",
                        "dt": "2020-03-18T18:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "FEW030",
                            "type": "FEW",
                            "altitude": 30,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "SCT060",
                            "type": "SCT",
                            "altitude": 60,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "FM182000 20010KT P6SM FEW030 SCT060",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "200",
                        "value": 200,
                        "spoken": "two zero zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "1904",
                        "dt": "2020-03-19T04:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM182000 20010KT P6SM FEW030 SCT060",
                    "start_time": {
                        "repr": "1820",
                        "dt": "2020-03-18T20:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "FEW030",
                            "type": "FEW",
                            "altitude": 30,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "BKN050",
                            "type": "BKN",
                            "altitude": 50,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "FM190400 10007KT P6SM FEW030 BKN050",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "100",
                        "value": 100,
                        "spoken": "one zero zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "07",
                        "value": 7,
                        "spoken": "seven"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "1912",
                        "dt": "2020-03-19T12:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM190400 10007KT P6SM FEW030 BKN050",
                    "start_time": {
                        "repr": "1904",
                        "dt": "2020-03-19T04:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null
                },
                {
                    "altimeter": "",
                    "clouds": [
                        {
                            "repr": "SCT030",
                            "type": "SCT",
                            "altitude": 30,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "VFR",
                    "other": [],
                    "sanitized": "FM191200 VRB03KT P6SM SCT030",
                    "visibility": {
                        "repr": "P6",
                        "value": null,
                        "spoken": "greater than six"
                    },
                    "wind_direction": {
                        "repr": "VRB",
                        "value": null,
                        "spoken": "variable"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "03",
                        "value": 3,
                        "spoken": "three"
                    },
                    "wx_codes": [],
                    "end_time": {
                        "repr": "1918",
                        "dt": "2020-03-19T18:00:00+00:00Z"
                    },
                    "icing": [],
                    "probability": null,
                    "raw": "FM191200 VRB03KT P6SM SCT030",
                    "start_time": {
                        "repr": "1912",
                        "dt": "2020-03-19T12:00:00+00:00Z"
                    },
                    "turbulence": [],
                    "type": "FROM",
                    "wind_shear": null
                }
            ],
            "start_time": {
                "repr": "1818",
                "dt": "2020-03-18T18:00:00+00:00Z"
            },
            "end_time": {
                "repr": "1918",
                "dt": "2020-03-19T18:00:00+00:00Z"
            },
            "max_temp": "",
            "min_temp": "",
            "alts": null,
            "temps": null,
            "translations": {
                "forecast": [
                    {
                        "altimeter": "",
                        "clouds": "Few clouds at 3500ft - Reported AGL",
                        "wx_codes": "",
                        "visibility": "Greater than 6sm ( >10km )",
                        "icing": "",
                        "turbulence": "",
                        "wind": "Variable at 3kt",
                        "wind_shear": ""
                    },
                    {
                        "altimeter": "",
                        "clouds": "Few clouds at 3000ft, Scattered clouds at 6000ft - Reported AGL",
                        "wx_codes": "",
                        "visibility": "Greater than 6sm ( >10km )",
                        "icing": "",
                        "turbulence": "",
                        "wind": "SSW-200 at 10kt",
                        "wind_shear": ""
                    },
                    {
                        "altimeter": "",
                        "clouds": "Few clouds at 3000ft, Broken layer at 5000ft - Reported AGL",
                        "wx_codes": "",
                        "visibility": "Greater than 6sm ( >10km )",
                        "icing": "",
                        "turbulence": "",
                        "wind": "E-100 at 7kt",
                        "wind_shear": ""
                    },
                    {
                        "altimeter": "",
                        "clouds": "Scattered clouds at 3000ft - Reported AGL",
                        "wx_codes": "",
                        "visibility": "Greater than 6sm ( >10km )",
                        "icing": "",
                        "turbulence": "",
                        "wind": "Variable at 3kt",
                        "wind_shear": ""
                    }
                ],
                "max_temp": "",
                "min_temp": "",
                "remarks": {}
            }
        }

## PIREP [/pirep/{location}{?options,format,onfail}]

A PIREP (Pilot Report) is an observation made by pilots inflight meant to aid controllers and pilots routing around adverse conditions and other conditions of note. They typically contain icing, turbulance, cloud types/bases/tops, and other info at a known distance and radial from a ground station. They are released as they come in.


Note: translate, summary, and speech options not yet available

+ Parameters
    + location: `KMCO` (string) - ICAO & IATA station code or coordinate pair
        + Examples: `EGLL`, `51.47,-0.4`
    + options: `info` (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get PIREP Report [GET]

Get PIREPs within 200 miles of a specific station by ICAO & IATA station code or a lat,lon coordinate pair.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2019-05-27T21:46:53.248533Z",
                "cache-timestamp": "2019-05-27T21:46:55.201833Z"
            },
            "data": [
                {
                    "raw": "OCF UA /OV OCF/TM 2103/FL110/TP GLF5/TB MOD",
                    "station": "OCF",
                    "time": {
                        "repr": "2103",
                        "dt": "2019-05-27T21:03:00Z"
                    },
                    "remarks": null,
                    "aircraft": {
                        "code": "GLF5",
                        "type": "Gulfstream V"
                    },
                    "altitude": {
                        "repr": "110",
                        "value": 110,
                        "spoken": "one one zero"
                    },
                    "clouds": null,
                    "flight_visibility": null,
                    "icing": null,
                    "location": {
                        "repr": "OCF",
                        "station": "OCF",
                        "distance": null
                    },
                    "other": [],
                    "sanitized": "OCF UA /OV OCF/TM 2103/FL110/TP GLF5/TB MOD",
                    "temperature": null,
                    "turbulance": {
                        "severity": "MOD",
                        "floor": null,
                        "ceiling": null
                    },
                    "type": "UA",
                    "wx_codes": []
                },
                {
                    "raw": "OCF UA /OV OCF125020/TM 2035/FL110/TP B738/TB CONT MOD CHOP/RM DURD",
                    "station": "OCF",
                    "time": {
                        "repr": "2035",
                        "dt": "2019-05-27T20:35:00Z"
                    },
                    "remarks": "DURD",
                    "aircraft": {
                        "code": "B738",
                        "type": "Boeing 737-800"
                    },
                    "altitude": {
                        "repr": "110",
                        "value": 110,
                        "spoken": "one one zero"
                    },
                    "clouds": null,
                    "flight_visibility": null,
                    "icing": null,
                    "location": {
                        "repr": "OCF125020",
                        "station": "OCF",
                        "distance": {
                            "repr": "020",
                            "value": 20,
                            "spoken": "two zero"
                        }
                    },
                    "other": [],
                    "sanitized": "OCF UA /OV OCF125020/TM 2035/FL110/TP B738/TB CONT MOD CHOP",
                    "temperature": null,
                    "turbulance": {
                        "severity": "CONT MOD CHOP",
                        "floor": null,
                        "ceiling": null
                    },
                    "type": "UA",
                    "wx_codes": []
                },
                {
                    "raw": "MCO UA /OV LEESE/TM 2030/FL120/TP B737/TB CONT MOD",
                    "station": "MCO",
                    "time": {
                        "repr": "2030",
                        "dt": "2019-05-27T20:30:00Z"
                    },
                    "remarks": null,
                    "aircraft": {
                        "code": "B737",
                        "type": "Boeing 737-700"
                    },
                    "altitude": {
                        "repr": "120",
                        "value": 120,
                        "spoken": "one two zero"
                    },
                    "clouds": null,
                    "flight_visibility": null,
                    "icing": null,
                    "location": {
                        "repr": "LEESE",
                        "station": null,
                        "distance": null
                    },
                    "other": [],
                    "sanitized": "MCO UA /OV LEESE/TM 2030/FL120/TP B737/TB CONT MOD",
                    "temperature": null,
                    "turbulance": {
                        "severity": "CONT MOD",
                        "floor": null,
                        "ceiling": null
                    },
                    "type": "UA",
                    "wx_codes": []
                }
            ],
            "units": {
                "altimeter": "inHg",
                "altitude": "ft",
                "temperature": "C",
                "visibility": "sm",
                "wind_speed": "kt"
            },
            "timestamp": "2019-05-27T21:46:55.201833Z"
        }

## Parse PIREP [/parse/pirep{?options,format}]

Parses a PIREP report supplied by the user.

Note: translate, summary, and speech options not yet available

+ Parameters

    + options: `info` (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Parse a Given PIREP [POST]

Parse a user-supplied PIREP included as the plain text body of the request.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

    + Body

            IMM UA /OV 2IS/TM 2258/FL055/TP P28A/TB NEG BLO 055/RM DURC

+ Response 200 (application/json)

        {
            "raw": "IMM UA /OV 2IS/TM 2258/FL055/TP P28A/TB NEG BLO 055/RM DURC",
            "station": "IMM",
            "time": {
                "repr": "2258",
                "dt": "2019-05-27T22:58:00Z"
            },
            "remarks": "DURC",
            "aircraft": {
                "code": "P28A",
                "type": "Piper PA-28 (up to 180 hp)"
            },
            "altitude": {
                "repr": "055",
                "value": 55,
                "spoken": "five five"
            },
            "clouds": null,
            "flight_visibility": null,
            "icing": null,
            "location": {
                "repr": "2IS",
                "station": "2IS",
                "distance": null
            },
            "other": [],
            "sanitized": "IMM UA /OV 2IS/TM 2258/FL055/TP P28A/TB NEG BLO 055/RM DURC",
            "temperature": null,
            "turbulance": {
                "severity": "NEG",
                "floor": null,
                "ceiling": {
                    "repr": "055",
                    "value": 55,
                    "spoken": "five five"
                }
            },
            "type": "UA",
            "wx_codes": [],
            "meta": {
                "timestamp": "2019-05-27T21:22:48.875848Z"
            }
        }

## AIR / SIGMET [/airsigmet{?format,onfail}]

A SIGMET (Significant Meteorological Information) is a weather advisory for the safety of all aircraft. They are divided into:

- Convective - thunderstorms, hail, and cyclones
- Non-Convective - turbulence, icing, dust clouds, volcanic activity, and radiation

An AIRMET (Airman's Meteorological Information) is a weather advisory for smaller aircraft or VFR navigation. They are divided into:

- Sierra - IFR conditions like low ceilings and mountain obscuration
- Tango - turbulance and high surface winds
- Zulu - icing and freezing levels

Both types share a similar report format and therefore are combined into a single list. The bulletin and weather type can be used to classify each as a SIGMET or AIRMET for filtering purposes.

Filtering options are available for:

- Point searches (see AIR SIG Contains)
- Flight path intersects (see Report Routing)

+ Parameters
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get AIR / SIGMET Report [GET]

Get all global AIRMET and SIGMET advisories.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2022-03-31T07:17:21.905613Z",
                "stations_updated": "2022-03-30"
            },
            "reports": [
                {
                    "raw": "WAUS45 KKCI 310245 SLCT WA 310245 AIRMET TANGO FOR TURB VALID UNTIL 310900 AIRMET TURB...ID MT NV UT AZ WA OR CA AND CSTL WTRS FROM 60SW YQL TO 60N LKT TO 70WSW TWF TO 60NNE PGS TO 50ESE EED TO 20E MZB TO 20ESE SNS TO 90W OED TO 140W TOU TO 60SW YQL MOD TURB BTN FL250 AND FL380. CONDS CONTG BYD 09Z THRU 15Z.",
                    "sanitized": "WAUS45 KKCI 310245 SLCT WA 310245 AIRMET TANGO FOR TURB VALID UNTIL 310900 AIRMET TURB...ID MT NV UT AZ WA OR CA AND CSTL WTRS FROM 60SW YQL TO 60N LKT TO 70WSW TWF TO 60NNE PGS TO 50ESE EED TO 20E MZB TO 20ESE SNS TO 90W OED TO 140W TOU TO 60SW YQL MOD TURB BTN FL250 AND FL380 CONDS CONTG BYD 09Z THRU 15Z.",
                    "station": null,
                    "time": {
                        "repr": "310245",
                        "dt": "2022-03-31T02:45:00Z"
                    },
                    "remarks": null,
                    "bulletin": {
                        "repr": "WAUS45",
                        "type": {
                            "repr": "WA",
                            "value": "airmet"
                        },
                        "country": "US",
                        "number": 45
                    },
                    "issuer": "KKCI",
                    "correction": null,
                    "area": "SLC",
                    "type": "AIRMET TANGO FOR TURB",
                    "start_time": null,
                    "end_time": {
                        "repr": "310900",
                        "dt": "2022-03-31T09:00:00Z"
                    },
                    "body": "AIRMET TURB...ID MT NV UT AZ WA OR CA AND CSTL WTRS FROM 60SW YQL TO 60N LKT TO 70WSW TWF TO 60NNE PGS TO 50ESE EED TO 20E MZB TO 20ESE SNS TO 90W OED TO 140W TOU TO 60SW YQL MOD TURB BTN FL250 AND FL380 CONDS CONTG BYD 09Z THRU 15Z.",
                    "region": "<elip> ID MT NV UT AZ WA OR CA AND CSTL WTRS",
                    "observation": {
                        "type": {
                            "repr": "MOD TURB",
                            "value": "Moderate Turbulence"
                        },
                        "start_time": null,
                        "end_time": null,
                        "position": null,
                        "floor": {
                            "repr": "FL250",
                            "value": 250,
                            "spoken": "flight level two five zero"
                        },
                        "ceiling": {
                            "repr": "FL380",
                            "value": 380,
                            "spoken": "flight level three eight zero"
                        },
                        "coords": [
                            {
                                "lat": 48.92287840375436,
                                "lon": -113.74017840162536,
                                "repr": "60SW YQL"
                            },
                            {
                                "lat": 46.02110365927132,
                                "lon": -114.08399963378906,
                                "repr": "60N LKT"
                            },
                            {
                                "lat": 42.02410412509356,
                                "lon": -115.93523092435264,
                                "repr": "70WSW TWF"
                            },
                            {
                                "lat": 36.54897311612283,
                                "lon": -113.06907514278058,
                                "repr": "60NNE PGS"
                            },
                            {
                                "lat": 34.44299659740049,
                                "lon": -113.54309881420377,
                                "repr": "50ESE EED"
                            },
                            {
                                "lat": 32.781575906588024,
                                "lon": -116.82962082921186,
                                "repr": "20E MZB"
                            },
                            {
                                "lat": 36.53545245006972,
                                "lon": -121.22085871934948,
                                "repr": "20ESE SNS"
                            },
                            {
                                "lat": 42.46167689082834,
                                "lon": -124.93971922107896,
                                "repr": "90W OED"
                            },
                            {
                                "lat": 48.2468401459394,
                                "lon": -128.11931177158036,
                                "repr": "140W TOU"
                            },
                            {
                                "lat": 48.92287840375436,
                                "lon": -113.74017840162536,
                                "repr": "60SW YQL"
                            }
                        ],
                        "bounds": [],
                        "movement": null,
                        "intensity": null,
                        "other": [
                            "CONDS",
                            "CONTG",
                            "BYD",
                            "09Z",
                            "THRU",
                            "15Z"
                        ]
                    },
                    "forecast": null,
                    "units": {
                        "accumulation": "in",
                        "altimeter": "hPa",
                        "altitude": "ft",
                        "temperature": "C",
                        "visibility": "m",
                        "wind_speed": "kt"
                    }
                }
            ]
        }

## Parse AIR / SIGMET [/parse/airsigmet{?format}]

Parses an AIRMET or SIGMET report supplied by the user.

+ Parameters

    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Parse a Given AIR / SIGMET [POST]

Parse a user-supplied AIRMET or SIGMET included as the plain text body of the request.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

    + Body

            WAUS41 KKCI 292045 BOST WA 292045 AIRMET TANGO UPDT 3 FOR TURB VALID UNTIL 300300 AIRMET TURB...ME NH VT MA RI CT NY NJ PA MD DE AND CSTL WTRS FROM 70NW PQI TO 60NE PQI TO 80SSW YSJ TO 60SSE ACK TO 60S ETX TO 50S MSS TO 20ESE YSC TO 70NW PQI MOD TURB BLW 080. CONDS CONTG BYD 03Z THRU 09Z.

+ Response 200 (application/json)

        {
            "raw": "WAUS41 KKCI 292045 BOST WA 292045 AIRMET TANGO UPDT 3 FOR TURB VALID UNTIL 300300 AIRMET TURB...ME NH VT MA RI CT NY NJ PA MD DE AND CSTL WTRS FROM 70NW PQI TO 60NE PQI TO 80SSW YSJ TO 60SSE ACK TO 60S ETX TO 50S MSS TO 20ESE YSC TO 70NW PQI MOD TURB BLW 080. CONDS CONTG BYD 03Z THRU 09Z.",
            "sanitized": "WAUS41 KKCI 292045 BOST WA 292045 AIRMET TANGO UPDT 3 FOR TURB VALID UNTIL 300300 AIRMET TURB...ME NH VT MA RI CT NY NJ PA MD DE AND CSTL WTRS FROM 70NW PQI TO 60NE PQI TO 80SSW YSJ TO 60SSE ACK TO 60S ETX TO 50S MSS TO 20ESE YSC TO 70NW PQI MOD TURB BLW 080. CONDS CONTG BYD 03Z THRU 09Z.",
            "station": null,
            "time": {
                "repr": "292045",
                "dt": "2022-03-29T20:45:00Z"
            },
            "remarks": null,
            "bulletin": {
                "repr": "WAUS41",
                "type": {
                    "repr": "WA",
                    "value": "airmet"
                },
                "country": "US",
                "number": 41
            },
            "issuer": "KKCI",
            "correction": null,
            "area": "BOS",
            "type": "AIRMET TANGO UPDT 3 FOR TURB",
            "start_time": null,
            "end_time": {
                "repr": "300300",
                "dt": "2022-03-30T03:00:00Z"
            },
            "body": "AIRMET TURB...ME NH VT MA RI CT NY NJ PA MD DE AND CSTL WTRS FROM 70NW PQI TO 60NE PQI TO 80SSW YSJ TO 60SSE ACK TO 60S ETX TO 50S MSS TO 20ESE YSC TO 70NW PQI MOD TURB BLW 080. CONDS CONTG BYD 03Z THRU 09Z.",
            "region": "<elip> ME NH VT MA RI CT NY NJ PA MD DE AND CSTL WTRS",
            "observation": {
                "type": {
                    "repr": "MOD TURB",
                    "value": "Moderate Turbulence"
                },
                "start_time": null,
                "end_time": null,
                "position": null,
                "floor": null,
                "ceiling": {
                    "repr": "080",
                    "value": 80,
                    "spoken": "eight zero"
                },
                "coords": [
                    {
                        "lat": 47.59233523833518,
                        "lon": -69.31332856013144,
                        "repr": "70NW PQI"
                    },
                    {
                        "lat": 47.476265450315495,
                        "lon": -67.0520903857819,
                        "repr": "60NE PQI"
                    },
                    {
                        "lat": 44.173213730414766,
                        "lon": -66.57972414026338,
                        "repr": "80SSW YSJ"
                    },
                    {
                        "lat": 40.35624404803827,
                        "lon": -69.5261383937499,
                        "repr": "60SSE ACK"
                    },
                    {
                        "lat": 39.58024645968407,
                        "lon": -75.68399810791016,
                        "repr": "60S ETX"
                    },
                    {
                        "lat": 44.08107958758354,
                        "lon": -74.72270202636719,
                        "repr": "50S MSS"
                    },
                    {
                        "lat": 45.310224949942636,
                        "lon": -71.25502369204965,
                        "repr": "20ESE YSC"
                    },
                    {
                        "lat": 47.59233523833518,
                        "lon": -69.31332856013144,
                        "repr": "70NW PQI"
                    }
                ],
                "bounds": [],
                "movement": null,
                "intensity": null,
                "other": [
                    "CONDS",
                    "CONTG",
                    "BYD",
                    "03Z",
                    "THRU",
                    "09Z"
                ]
            },
            "forecast": null,
            "meta": {
                "timestamp": "2022-03-31T01:43:51.454365Z",
                "stations_updated": "2022-03-30"
            }
        }

## AIR / SIGMET Contains [/airsigmet/{location}{?format,onfail}]

Get AIRMET and SIGMET advisories that contain a station or coordinate inside the observation or forecast boundary polygon.

+ Parameters
    + location: `KJFK` (string) - ICAO & IATA station code or coordinate pair
        + Examples: `EGLL`, `51.47,-0.4`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get AIR / SIGMET Report [GET]

This example returns AIRMET and SIGMET advisories that apply to Orlando International.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2022-04-10T01:15:17.093102Z",
                "stations_updated": "2022-04-09"
            },
            "point": {
                "lat": 27.988899,
                "lon": -82.018602,
                "repr": "KLAL"
            },
            "results": [
                {
                    "raw": "WAUS42 KKCI 092045 MIAT WA 092045 AIRMET TANGO UPDT 3 FOR TURB STG WNDS AND LLWS VALID UNTIL 100300 AIRMET TURB...GA FL AND CSTL WTRS FROM 50SW PZD TO 20WSW CRG TO 220SSE ILM TO 180E PBI TO 70ENE PBI TO 90E MIA TO 80WSW EYW TO 90WSW PIE TO 170W PIE TO 50SW PZD MOD TURB BTN FL240 AND FL390. CONDS CONTG BYD 03Z THRU 09Z.",
                    "sanitized": "WAUS42 KKCI 092045 MIAT WA 092045 AIRMET TANGO UPDT 3 FOR TURB STG WNDS AND LLWS VALID UNTIL 100300 AIRMET TURB...GA FL AND CSTL WTRS FROM 50SW PZD TO 20WSW CRG TO 220SSE ILM TO 180E PBI TO 70ENE PBI TO 90E MIA TO 80WSW EYW TO 90WSW PIE TO 170W PIE TO 50SW PZD MOD TURB BTN FL240 AND FL390 CONDS CONTG BYD 03Z THRU 09Z.",
                    "station": null,
                    "time": {
                        "repr": "092045",
                        "dt": "2022-04-09T20:45:00Z"
                    },
                    "remarks": null,
                    "bulletin": {
                        "repr": "WAUS42",
                        "type": {
                            "repr": "WA",
                            "value": "airmet"
                        },
                        "country": "US",
                        "number": 42
                    },
                    "issuer": "KKCI",
                    "correction": null,
                    "area": "MIA",
                    "type": "AIRMET TANGO UPDT 3 FOR TURB STG WNDS AND LLWS",
                    "start_time": null,
                    "end_time": {
                        "repr": "100300",
                        "dt": "2022-04-10T03:00:00Z"
                    },
                    "body": "AIRMET TURB...GA FL AND CSTL WTRS FROM 50SW PZD TO 20WSW CRG TO 220SSE ILM TO 180E PBI TO 70ENE PBI TO 90E MIA TO 80WSW EYW TO 90WSW PIE TO 170W PIE TO 50SW PZD MOD TURB BTN FL240 AND FL390 CONDS CONTG BYD 03Z THRU 09Z.",
                    "region": "GA FL AND CSTL WTRS",
                    "observation": {
                        "type": {
                            "repr": "MOD TURB",
                            "value": "Moderate Turbulence"
                        },
                        "start_time": null,
                        "end_time": null,
                        "position": null,
                        "floor": {
                            "repr": "FL240",
                            "value": 240,
                            "spoken": "flight level two four zero"
                        },
                        "ceiling": {
                            "repr": "FL390",
                            "value": 390,
                            "spoken": "flight level three nine zero"
                        },
                        "coords": [
                            {
                                "lat": 31.062799694425536,
                                "lon": -84.97914456190854,
                                "repr": "50SW PZD"
                            },
                            {
                                "lat": 30.210552936622655,
                                "lon": -81.86532290972373,
                                "repr": "20WSW CRG"
                            },
                            {
                                "lat": 30.946407577939,
                                "lon": -76.24359789680189,
                                "repr": "220SSE ILM"
                            },
                            {
                                "lat": 26.640631040950968,
                                "lon": -76.73807001219129,
                                "repr": "180E PBI"
                            },
                            {
                                "lat": 27.122701871982393,
                                "lon": -78.87847305611729,
                                "repr": "70ENE PBI"
                            },
                            {
                                "lat": 35.29391465152129,
                                "lon": -1.1229727370891476,
                                "repr": "90E MIA"
                            },
                            {
                                "lat": 24.068010274815315,
                                "lon": -83.1464641299101,
                                "repr": "80WSW EYW"
                            },
                            {
                                "lat": 27.32341107484432,
                                "lon": -84.24027615195355,
                                "repr": "90WSW PIE"
                            },
                            {
                                "lat": 27.870702521336405,
                                "lon": -85.8816922859451,
                                "repr": "170W PIE"
                            },
                            {
                                "lat": 31.062799694425536,
                                "lon": -84.97914456190854,
                                "repr": "50SW PZD"
                            }
                        ],
                        "bounds": [],
                        "movement": null,
                        "intensity": null,
                        "other": [
                            "CONDS",
                            "CONTG",
                            "BYD",
                            "03Z",
                            "THRU",
                            "09Z"
                        ]
                    },
                    "forecast": null,
                    "units": {
                        "accumulation": "in",
                        "altimeter": "hPa",
                        "altitude": "ft",
                        "temperature": "C",
                        "visibility": "m",
                        "wind_speed": "kt"
                    }
                },
                {
                    "raw": "WAUS42 KKCI 092045 MIAT WA 092045 AIRMET TANGO UPDT 3 FOR TURB STG WNDS AND LLWS VALID UNTIL 100300 AIRMET TURB...GA FL AND CSTL WTRS FROM 20NE AMG TO 60S SAV TO 90ENE CRG TO 100NE TRV TO 70ESE PBI TO 70E EYW TO 40SSW RSW TO 20SSW PIE TO 30SSE CTY TO 60SW AMG TO 20NE AMG MOD TURB BLW 100. CONDS ENDG 00-03Z.",
                    "sanitized": "WAUS42 KKCI 092045 MIAT WA 092045 AIRMET TANGO UPDT 3 FOR TURB STG WNDS AND LLWS VALID UNTIL 100300 AIRMET TURB...GA FL AND CSTL WTRS FROM 20NE AMG TO 60S SAV TO 90ENE CRG TO 100NE TRV TO 70ESE PBI TO 70E EYW TO 40SSW RSW TO 20SSW PIE TO 30SSE CTY TO 60SW AMG TO 20NE AMG MOD TURB BLW 100. CONDS ENDG 00-03Z.",
                    "station": null,
                    "time": {
                        "repr": "092045",
                        "dt": "2022-04-09T20:45:00Z"
                    },
                    "remarks": null,
                    "bulletin": {
                        "repr": "WAUS42",
                        "type": {
                            "repr": "WA",
                            "value": "airmet"
                        },
                        "country": "US",
                        "number": 42
                    },
                    "issuer": "KKCI",
                    "correction": null,
                    "area": "MIA",
                    "type": "AIRMET TANGO UPDT 3 FOR TURB STG WNDS AND LLWS",
                    "start_time": null,
                    "end_time": {
                        "repr": "100300",
                        "dt": "2022-04-10T03:00:00Z"
                    },
                    "body": "AIRMET TURB...GA FL AND CSTL WTRS FROM 20NE AMG TO 60S SAV TO 90ENE CRG TO 100NE TRV TO 70ESE PBI TO 70E EYW TO 40SSW RSW TO 20SSW PIE TO 30SSE CTY TO 60SW AMG TO 20NE AMG MOD TURB BLW 100. CONDS ENDG 00-03Z.",
                    "region": "GA FL AND CSTL WTRS",
                    "observation": {
                        "type": {
                            "repr": "MOD TURB",
                            "value": "Moderate Turbulence"
                        },
                        "start_time": null,
                        "end_time": null,
                        "position": null,
                        "floor": null,
                        "ceiling": {
                            "repr": "100",
                            "value": 100,
                            "spoken": "one hundred"
                        },
                        "coords": [
                            {
                                "lat": 31.77241293168869,
                                "lon": -82.23160764129749,
                                "repr": "20NE AMG"
                            },
                            {
                                "lat": 15.548936795218124,
                                "lon": 104.76000213623047,
                                "repr": "60S SAV"
                            },
                            {
                                "lat": -35.5615470154245,
                                "lon": 149.56062160618774,
                                "repr": "90ENE CRG"
                            },
                            {
                                "lat": 9.664248750249747,
                                "lon": 78.11323748207604,
                                "repr": "100NE TRV"
                            },
                            {
                                "lat": 26.227275073028668,
                                "lon": -78.8878721227731,
                                "repr": "70ESE PBI"
                            },
                            {
                                "lat": 24.58046064185233,
                                "lon": -80.52059337842083,
                                "repr": "70E EYW"
                            },
                            {
                                "lat": 25.91187292366639,
                                "lon": -82.05874516737852,
                                "repr": "40SSW RSW"
                            },
                            {
                                "lat": 27.598919819382733,
                                "lon": -82.82788112917204,
                                "repr": "20SSW PIE"
                            },
                            {
                                "lat": 29.135722177832356,
                                "lon": -82.83020722652982,
                                "repr": "30SSE CTY"
                            },
                            {
                                "lat": 30.825177680131407,
                                "lon": -83.32931919028739,
                                "repr": "60SW AMG"
                            },
                            {
                                "lat": 31.77241293168869,
                                "lon": -82.23160764129749,
                                "repr": "20NE AMG"
                            }
                        ],
                        "bounds": [],
                        "movement": null,
                        "intensity": null,
                        "other": [
                            "CONDS",
                            "ENDG",
                            "00-03Z"
                        ]
                    },
                    "forecast": null,
                    "units": {
                        "accumulation": "in",
                        "altimeter": "hPa",
                        "altitude": "ft",
                        "temperature": "C",
                        "visibility": "m",
                        "wind_speed": "kt"
                    }
                }
            ]
        }

## NBM [/nbm/{report}/{location}{?options,airport,reporting,format,onfail}]

The [National Blend of Models](https://www.weather.gov/mdl/nbm_home) is a weather forecast model for North America provided by NOAA. AVWX currently supports these forecast types that pertain to atmospheric conditions:

- [NBH](https://www.weather.gov/mdl/nbm_textcard_v32#nbh) - Hourly forecast for the next 25 hours
- [NBS](https://www.weather.gov/mdl/nbm_textcard_v32#nbs) - Short-term forecast from 6 to 72 hours with 3-hour time intervals starting at 00
- [NBE](https://www.weather.gov/mdl/nbm_textcard_v32#nbe) - Extended forecast from 24 to 192 hours with 12-hours time intervals at 00 and 12

While these reports officially support ICAO stations in the United States and Puerto Rico, Guam, and US Virgin Islands, some other stations in North America will also work. It is recommended to request reports by ICAO station ID, but coordinate searches are accepted as well.

+ Parameters
    + report: `nbs` (string) - NBM report type
        + Supported: `nbh`, `nbs`, `nbe`
    + location: `KJFK` (string) - ICAO & IATA station code or coordinate pair
        + Examples: `EGLL`, `51.47,-0.4`
    + options: (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`
    + airport (boolean, optional) - Only include airports when performing a coordinate search
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations when performing a coordinate search
        + Default: true
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get NBM NBS Report [GET]

Get the NBM NBS report for a specific station by ICAO & IATA station code or a lat,lon coordinate pair. The API will return the station nearest to those coordinates. Include `info` in the options to get details about the selected station.

Note: The forecast list is truncated to the first few time periods.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-08-02T17:36:00.207461Z",
                "stations_updated": "2020-07-30"
            },
            "raw": "KJFK    NBM V3.2 NBS GUIDANCE    8/02/2020  1600 UTC\nDT      /AUG   3                /AUG   4                /AUG   5\nUTC  21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15\nFHR  05 08 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71\nN/X                 76          89          75          82          72\nTMP  83 81 81 80 77 79 83 87 85 81 79 77 76 78 79 80 78 76 76 75 73 76 80\nDPT  76 75 74 72 69 68 67 67 71 72 71 71 72 73 72 73 72 71 70 69 69 69 68\nSKY  35 46 42 28 25 15 15  6 10 65 82 89 93 98 95 92 87 77 53 43 47 31 36\nWDR  18 20 21 23 25 25 25 22 18 20 20 20 18 18 16 16 16 18 19 23 23 25 26\nWSP  13 12 10  8  7  8  8  8  9  9  6  5  5  6  8 11 13 13 11 10  9  7  8\nGST  20 21 17 14 14 14 12 16 16 17 11 10 10 13 13 19 23 22 22 21 18 13 13\nP06     31     8     3     4    24    54    75    89    91    69    40\nP12                  8          24          75          91          69\nQ06      5     0     0     0     0     8    36    57   101    73    39\nQ12                  0           0          44         158         112\nDUR                  0           0           9          12          12\nT03  17 17 13  9  5  2  0  1  5 12 15 10 10 12 10 10 14 16 21 14 15  9  4\nT12                 21          15          29          33          39\nPZR   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0\nPSN   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0\nPPL   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0\nPRA 100100100100100100100100100100100100100100100100100100100100100100100\nS06      0     0     0     0     0     0     0     0     0     0     0\nSLV 129124124132132131130124125121119116118119124131131132131125129120113\nI06      0     0     0     0     0     0     0     0     0     0     0\nCIG 888888888888888888888888888140 90 90 90 18 20 16110 18888888888888999\nVIS 110110110110120130130150120110120100130120110 80 90 70110110110100150\nLCB  80150110 70 80100120120120 70120 23 29  7 14 13 18 27120 90 50 42 42\nMHT  14  7  6  7  9 20 34 42 17  7  7 13 10 16 19 19 19 19 13 13 13 17 36\nTWD  18 19 20 24 26 26 26 25 19 19 19 21 19 20 18 15 12 15 12 12 17 24 22\nTWS  20 18 16 14 14 16 14 16 11 15 11 14 11 14 12 25 25 29 17 20 27 18 17\nHID      4     4     3     5     4     4     4     3     3     4     4\nSOL 520 90  0  0  0300730840560120  0  0  0 20 80170280 60  0  0  0270550",
            "station": "KJFK",
            "time": {
                "repr": "8/02/2020  1600",
                "dt": "2020-08-02T16:00:00Z"
            },
            "remarks": null,
            "forecast": [
                {
                    "time": {
                        "repr": "21",
                        "dt": "2020-08-02T21:00:00Z"
                    },
                    "temperature": {
                        "repr": "83",
                        "value": 83,
                        "spoken": "eight three"
                    },
                    "dewpoint": {
                        "repr": "76",
                        "value": 76,
                        "spoken": "seven six"
                    },
                    "sky_cover": {
                        "repr": "35",
                        "value": 35,
                        "spoken": "three five"
                    },
                    "wind_direction": {
                        "repr": "18",
                        "value": 180,
                        "spoken": "one eight zero"
                    },
                    "wind_speed": {
                        "repr": "13",
                        "value": 13,
                        "spoken": "one three"
                    },
                    "wind_gust": {
                        "repr": "20",
                        "value": 20,
                        "spoken": "two zero"
                    },
                    "snow_level": {
                        "repr": "129",
                        "value": 12900,
                        "spoken": "one two nine hundred"
                    },
                    "precip_duration": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "sleet": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "rain": {
                        "repr": "100",
                        "value": 100,
                        "spoken": "one hundred"
                    },
                    "solar_radiation": {
                        "repr": "520",
                        "value": 520,
                        "spoken": "five two zero"
                    },
                    "wave_height": null,
                    "ceiling": {
                        "repr": "888",
                        "value": null,
                        "spoken": "unlimited"
                    },
                    "visibility": {
                        "repr": "110",
                        "value": 11.0,
                        "spoken": "one one point zero"
                    },
                    "cloud_base": {
                        "repr": "80",
                        "value": 8000,
                        "spoken": "eight thousand"
                    },
                    "mixing_height": {
                        "repr": "14",
                        "value": 1400,
                        "spoken": "one four hundred"
                    },
                    "transport_wind_direction": {
                        "repr": "18",
                        "value": 180,
                        "spoken": "one eight zero"
                    },
                    "transport_wind_speed": {
                        "repr": "20",
                        "value": 20,
                        "spoken": "two zero"
                    },
                    "haines": null,
                    "precip_chance_6": null,
                    "precip_chance_12": null,
                    "precip_amount_6": null,
                    "precip_amount_12": null,
                    "thunderstorm_3": {
                        "repr": "17",
                        "value": 17,
                        "spoken": "one seven"
                    },
                    "thunderstorm_12": null,
                    "snow_amount_6": null,
                    "icing_amount_6": null
                },
                {
                    "time": {
                        "repr": "00",
                        "dt": "2020-08-03T00:00:00Z"
                    },
                    "temperature": {
                        "repr": "81",
                        "value": 81,
                        "spoken": "eight one"
                    },
                    "dewpoint": {
                        "repr": "75",
                        "value": 75,
                        "spoken": "seven five"
                    },
                    "sky_cover": {
                        "repr": "46",
                        "value": 46,
                        "spoken": "four six"
                    },
                    "wind_direction": {
                        "repr": "20",
                        "value": 200,
                        "spoken": "two zero zero"
                    },
                    "wind_speed": {
                        "repr": "12",
                        "value": 12,
                        "spoken": "one two"
                    },
                    "wind_gust": {
                        "repr": "21",
                        "value": 21,
                        "spoken": "two one"
                    },
                    "snow_level": {
                        "repr": "124",
                        "value": 12400,
                        "spoken": "one two four hundred"
                    },
                    "precip_duration": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "sleet": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "rain": {
                        "repr": "100",
                        "value": 100,
                        "spoken": "one hundred"
                    },
                    "solar_radiation": {
                        "repr": "90",
                        "value": 90,
                        "spoken": "nine zero"
                    },
                    "wave_height": null,
                    "ceiling": {
                        "repr": "888",
                        "value": null,
                        "spoken": "unlimited"
                    },
                    "visibility": {
                        "repr": "110",
                        "value": 11.0,
                        "spoken": "one one point zero"
                    },
                    "cloud_base": {
                        "repr": "150",
                        "value": 15000,
                        "spoken": "one five thousand"
                    },
                    "mixing_height": {
                        "repr": "7",
                        "value": 700,
                        "spoken": "seven hundred"
                    },
                    "transport_wind_direction": {
                        "repr": "19",
                        "value": 190,
                        "spoken": "one nine zero"
                    },
                    "transport_wind_speed": {
                        "repr": "18",
                        "value": 18,
                        "spoken": "one eight"
                    },
                    "haines": {
                        "repr": "4",
                        "value": 4,
                        "spoken": "four"
                    },
                    "precip_chance_6": {
                        "repr": "31",
                        "value": 31,
                        "spoken": "three one"
                    },
                    "precip_chance_12": null,
                    "precip_amount_6": {
                        "repr": "5",
                        "value": 0.05,
                        "spoken": "zero point zero five"
                    },
                    "precip_amount_12": null,
                    "thunderstorm_3": {
                        "repr": "17",
                        "value": 17,
                        "spoken": "one seven"
                    },
                    "thunderstorm_12": null,
                    "snow_amount_6": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "icing_amount_6": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    }
                },
                {
                    "time": {
                        "repr": "03",
                        "dt": "2020-08-03T03:00:00Z"
                    },
                    "temperature": {
                        "repr": "81",
                        "value": 81,
                        "spoken": "eight one"
                    },
                    "dewpoint": {
                        "repr": "74",
                        "value": 74,
                        "spoken": "seven four"
                    },
                    "sky_cover": {
                        "repr": "42",
                        "value": 42,
                        "spoken": "four two"
                    },
                    "wind_direction": {
                        "repr": "21",
                        "value": 210,
                        "spoken": "two one zero"
                    },
                    "wind_speed": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_gust": {
                        "repr": "17",
                        "value": 17,
                        "spoken": "one seven"
                    },
                    "snow_level": {
                        "repr": "124",
                        "value": 12400,
                        "spoken": "one two four hundred"
                    },
                    "precip_duration": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "sleet": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "rain": {
                        "repr": "100",
                        "value": 100,
                        "spoken": "one hundred"
                    },
                    "solar_radiation": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wave_height": null,
                    "ceiling": {
                        "repr": "888",
                        "value": null,
                        "spoken": "unlimited"
                    },
                    "visibility": {
                        "repr": "110",
                        "value": 11.0,
                        "spoken": "one one point zero"
                    },
                    "cloud_base": {
                        "repr": "110",
                        "value": 11000,
                        "spoken": "one one thousand"
                    },
                    "mixing_height": {
                        "repr": "6",
                        "value": 600,
                        "spoken": "six hundred"
                    },
                    "transport_wind_direction": {
                        "repr": "20",
                        "value": 200,
                        "spoken": "two zero zero"
                    },
                    "transport_wind_speed": {
                        "repr": "16",
                        "value": 16,
                        "spoken": "one six"
                    },
                    "haines": null,
                    "precip_chance_6": null,
                    "precip_chance_12": null,
                    "precip_amount_6": null,
                    "precip_amount_12": null,
                    "thunderstorm_3": {
                        "repr": "13",
                        "value": 13,
                        "spoken": "one three"
                    },
                    "thunderstorm_12": null,
                    "snow_amount_6": null,
                    "icing_amount_6": null
                }
            ],
            "units": {
                "altimeter": "inHg",
                "altitude": "ft",
                "temperature": "F",
                "visibility": "sm",
                "wind_speed": "kt",
                "accumulation": "in",
                "duration": "hour",
                "solar_radiation": "W/m2",
                "wave_height": "ft"
            }
        }

## Parse NBM [/parse/nbm/{report}{?options,format}]

Parses an NBM report supplied by the user.

+ Parameters
    + report: `nbs` (string) - GFS report type
        + Supported: `nbh`, `nbs`, `nbe`
    + options: (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Parse a Given NBM Report [POST]

Parse a user-supplied NBM report included as the plain text body of the request. The request body can be multiline or use `\n` on a single line.

Note: The forecast list is truncated to the first few time periods.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

    + Body

            KMCO    NBM V3.2 NBS GUIDANCE    7/25/2020  0300 UTC
            DT /JULY 25         /JULY 26                /JULY 27                /
            UTC  09 12 15 18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18 21 00 03
            FHR  06 09 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72
            X/N                 90          75          90          74          90
            TMP  76 78 86 86 85 81 78 77 76 78 85 85 83 78 76 76 75 77 85 86 84 80 78
            DPT  74 76 75 74 74 74 74 75 74 76 76 75 76 75 74 74 74 76 77 75 76 76 75
            SKY  61 64 60 50 36 29 31 12 17 35 49 64 82 71 67 53 45 41 48 76 80 69 69
            WDR   8  7  9  9 10 10 10  9 10 10 14 13 12 19 17 00 00 16 17 19 20 22 20
            WSP   1  2  6  8  8  5  3  2  2  3  4  4  4  3  1  0  0  1  3  2  2  2  1
            GST   5  5 12 15 14 12  7  6  5  7 10 12 12 11  5  2  2  3  7 10  9  8  4
            P06      1    21    62    20     9    36    92    17     2    28    80
            P12                 62          20          92          17          80
            Q06      0     0     2     1     0     0    63     5     0     0    36
            Q12                  2           1          63           5          36
            DUR                  1           1           6           3           6
            T03   1  1  4 21 39 34 12  4  4  6 10 34 63 56 23  7  3  3  9 33 64 52 19
            T12                 50          21          80          29          83
            PZR   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
            PSN   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
            PPL   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
            PRA 100100100100100100100100100100100100100100100100100100100100100100100
            S06      0     0     0     0     0     0     0     0     0     0     0
            SLV 118117114115115119124129130130135135137139139138136135135136137137138
            I06      0     0     0     0     0     0     0     0     0     0     0
            CIG 250340290888888888888888888888888 70 50 70  4888888888888 49 60 90999
            VIS 110110120120130110110110110110110110110110120120110120100100 90 90150
            LCB 200190 48 60 60110140 50130110 43 24 27 23 43 90 90 39 60 50 70 70 80
            MHT   5  7 38 47 43 16  7  4  4  8 41 62 29  7  7  4  4  7 36 50 45  4  4
            TWD  10  8 10 10 10 10 10  9 12 12 15 16 13 14 18 20 17 16 16 19 19 35 18
            TWS   6  5 11 13 14 12  7  7  6  7  8  9 10 10  9  3  3  4  8  9  9  7  4
            HID      4     4     3     3     3     4     4     3     3     4     4
            SOL   0180560780540170  0  0  0160440790390150  1  0  0170500660680350  0

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-08-02T20:49:36.815272Z",
                "stations_updated": "2020-07-30"
            },
            "raw": "KMCO    NBM V3.2 NBS GUIDANCE    7/25/2020  0300 UTC\nDT /JULY 25         /JULY 26                /JULY 27                /\nUTC  09 12 15 18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18 21 00 03\nFHR  06 09 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72\nX/N                 90          75          90          74          90\nTMP  76 78 86 86 85 81 78 77 76 78 85 85 83 78 76 76 75 77 85 86 84 80 78\nDPT  74 76 75 74 74 74 74 75 74 76 76 75 76 75 74 74 74 76 77 75 76 76 75\nSKY  61 64 60 50 36 29 31 12 17 35 49 64 82 71 67 53 45 41 48 76 80 69 69\nWDR   8  7  9  9 10 10 10  9 10 10 14 13 12 19 17 00 00 16 17 19 20 22 20\nWSP   1  2  6  8  8  5  3  2  2  3  4  4  4  3  1  0  0  1  3  2  2  2  1\nGST   5  5 12 15 14 12  7  6  5  7 10 12 12 11  5  2  2  3  7 10  9  8  4\nP06      1    21    62    20     9    36    92    17     2    28    80\nP12                 62          20          92          17          80\nQ06      0     0     2     1     0     0    63     5     0     0    36\nQ12                  2           1          63           5          36\nDUR                  1           1           6           3           6\nT03   1  1  4 21 39 34 12  4  4  6 10 34 63 56 23  7  3  3  9 33 64 52 19\nT12                 50          21          80          29          83\nPZR   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0\nPSN   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0\nPPL   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0\nPRA 100100100100100100100100100100100100100100100100100100100100100100100\nS06      0     0     0     0     0     0     0     0     0     0     0\nSLV 118117114115115119124129130130135135137139139138136135135136137137138\nI06      0     0     0     0     0     0     0     0     0     0     0\nCIG 250340290888888888888888888888888 70 50 70  4888888888888 49 60 90999\nVIS 110110120120130110110110110110110110110110120120110120100100 90 90150\nLCB 200190 48 60 60110140 50130110 43 24 27 23 43 90 90 39 60 50 70 70 80\nMHT   5  7 38 47 43 16  7  4  4  8 41 62 29  7  7  4  4  7 36 50 45  4  4\nTWD  10  8 10 10 10 10 10  9 12 12 15 16 13 14 18 20 17 16 16 19 19 35 18\nTWS   6  5 11 13 14 12  7  7  6  7  8  9 10 10  9  3  3  4  8  9  9  7  4\nHID      4     4     3     3     3     4     4     3     3     4     4\nSOL   0180560780540170  0  0  0160440790390150  1  0  0170500660680350  0",
            "station": "KMCO",
            "time": {
                "repr": "7/25/2020  0300",
                "dt": "2020-07-25T03:00:00Z"
            },
            "remarks": null,
            "forecast":             [
                {
                    "time": {
                        "repr": "09",
                        "dt": "2020-07-25T09:00:00Z"
                    },
                    "temperature": {
                        "repr": "76",
                        "value": 76,
                        "spoken": "seven six"
                    },
                    "dewpoint": {
                        "repr": "74",
                        "value": 74,
                        "spoken": "seven four"
                    },
                    "sky_cover": {
                        "repr": "61",
                        "value": 61,
                        "spoken": "six one"
                    },
                    "wind_direction": {
                        "repr": "8",
                        "value": 80,
                        "spoken": "eight zero"
                    },
                    "wind_speed": {
                        "repr": "1",
                        "value": 1,
                        "spoken": "one"
                    },
                    "wind_gust": {
                        "repr": "5",
                        "value": 5,
                        "spoken": "five"
                    },
                    "snow_level": {
                        "repr": "118",
                        "value": 11800,
                        "spoken": "one one eight hundred"
                    },
                    "precip_duration": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "sleet": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "rain": {
                        "repr": "100",
                        "value": 100,
                        "spoken": "one hundred"
                    },
                    "solar_radiation": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wave_height": null,
                    "ceiling": {
                        "repr": "250",
                        "value": 25000,
                        "spoken": "two five thousand"
                    },
                    "visibility": {
                        "repr": "110",
                        "value": 11.0,
                        "spoken": "one one point zero"
                    },
                    "cloud_base": {
                        "repr": "200",
                        "value": 20000,
                        "spoken": "two zero thousand"
                    },
                    "mixing_height": {
                        "repr": "5",
                        "value": 500,
                        "spoken": "five hundred"
                    },
                    "transport_wind_direction": {
                        "repr": "10",
                        "value": 100,
                        "spoken": "one zero zero"
                    },
                    "transport_wind_speed": {
                        "repr": "6",
                        "value": 6,
                        "spoken": "six"
                    },
                    "haines": null,
                    "precip_chance_6": null,
                    "precip_chance_12": null,
                    "precip_amount_6": null,
                    "precip_amount_12": null,
                    "thunderstorm_3": {
                        "repr": "1",
                        "value": 1,
                        "spoken": "one"
                    },
                    "thunderstorm_12": null,
                    "snow_amount_6": null,
                    "icing_amount_6": null
                },
                {
                    "time": {
                        "repr": "12",
                        "dt": "2020-07-25T12:00:00Z"
                    },
                    "temperature": {
                        "repr": "78",
                        "value": 78,
                        "spoken": "seven eight"
                    },
                    "dewpoint": {
                        "repr": "76",
                        "value": 76,
                        "spoken": "seven six"
                    },
                    "sky_cover": {
                        "repr": "64",
                        "value": 64,
                        "spoken": "six four"
                    },
                    "wind_direction": {
                        "repr": "7",
                        "value": 70,
                        "spoken": "seven zero"
                    },
                    "wind_speed": {
                        "repr": "2",
                        "value": 2,
                        "spoken": "two"
                    },
                    "wind_gust": {
                        "repr": "5",
                        "value": 5,
                        "spoken": "five"
                    },
                    "snow_level": {
                        "repr": "117",
                        "value": 11700,
                        "spoken": "one one seven hundred"
                    },
                    "precip_duration": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "sleet": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "rain": {
                        "repr": "100",
                        "value": 100,
                        "spoken": "one hundred"
                    },
                    "solar_radiation": {
                        "repr": "180",
                        "value": 180,
                        "spoken": "one eight zero"
                    },
                    "wave_height": null,
                    "ceiling": {
                        "repr": "340",
                        "value": 34000,
                        "spoken": "three four thousand"
                    },
                    "visibility": {
                        "repr": "110",
                        "value": 11.0,
                        "spoken": "one one point zero"
                    },
                    "cloud_base": {
                        "repr": "190",
                        "value": 19000,
                        "spoken": "one nine thousand"
                    },
                    "mixing_height": {
                        "repr": "7",
                        "value": 700,
                        "spoken": "seven hundred"
                    },
                    "transport_wind_direction": {
                        "repr": "8",
                        "value": 80,
                        "spoken": "eight zero"
                    },
                    "transport_wind_speed": {
                        "repr": "5",
                        "value": 5,
                        "spoken": "five"
                    },
                    "haines": {
                        "repr": "4",
                        "value": 4,
                        "spoken": "four"
                    },
                    "precip_chance_6": {
                        "repr": "1",
                        "value": 1,
                        "spoken": "one"
                    },
                    "precip_chance_12": null,
                    "precip_amount_6": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_amount_12": null,
                    "thunderstorm_3": {
                        "repr": "1",
                        "value": 1,
                        "spoken": "one"
                    },
                    "thunderstorm_12": null,
                    "snow_amount_6": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "icing_amount_6": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    }
                },
                {
                    "time": {
                        "repr": "15",
                        "dt": "2020-07-25T15:00:00Z"
                    },
                    "temperature": {
                        "repr": "86",
                        "value": 86,
                        "spoken": "eight six"
                    },
                    "dewpoint": {
                        "repr": "75",
                        "value": 75,
                        "spoken": "seven five"
                    },
                    "sky_cover": {
                        "repr": "60",
                        "value": 60,
                        "spoken": "six zero"
                    },
                    "wind_direction": {
                        "repr": "9",
                        "value": 90,
                        "spoken": "nine zero"
                    },
                    "wind_speed": {
                        "repr": "6",
                        "value": 6,
                        "spoken": "six"
                    },
                    "wind_gust": {
                        "repr": "12",
                        "value": 12,
                        "spoken": "one two"
                    },
                    "snow_level": {
                        "repr": "114",
                        "value": 11400,
                        "spoken": "one one four hundred"
                    },
                    "precip_duration": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "sleet": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "rain": {
                        "repr": "100",
                        "value": 100,
                        "spoken": "one hundred"
                    },
                    "solar_radiation": {
                        "repr": "560",
                        "value": 560,
                        "spoken": "five six zero"
                    },
                    "wave_height": null,
                    "ceiling": {
                        "repr": "290",
                        "value": 29000,
                        "spoken": "two nine thousand"
                    },
                    "visibility": {
                        "repr": "120",
                        "value": 12.0,
                        "spoken": "one two point zero"
                    },
                    "cloud_base": {
                        "repr": "48",
                        "value": 4800,
                        "spoken": "four eight hundred"
                    },
                    "mixing_height": {
                        "repr": "38",
                        "value": 3800,
                        "spoken": "three eight hundred"
                    },
                    "transport_wind_direction": {
                        "repr": "10",
                        "value": 100,
                        "spoken": "one zero zero"
                    },
                    "transport_wind_speed": {
                        "repr": "11",
                        "value": 11,
                        "spoken": "one one"
                    },
                    "haines": null,
                    "precip_chance_6": null,
                    "precip_chance_12": null,
                    "precip_amount_6": null,
                    "precip_amount_12": null,
                    "thunderstorm_3": {
                        "repr": "4",
                        "value": 4,
                        "spoken": "four"
                    },
                    "thunderstorm_12": null,
                    "snow_amount_6": null,
                    "icing_amount_6": null
                }
            ]
        }

## GFS [/gfs/{report}/{location}{?options,airport,reporting,format,onfail}]

The [Global Forecast System](https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/global-forcast-system-gfs) is a weather forecast model provided by NOAA. AVWX currently supports these forecast types that pertain to atmospheric conditions:

- [MOS MAV](https://www.nws.noaa.gov/mdl/synop/mavcard.php) - Atmospheric forecast from 6 to 72 hours in advance updated every 6 hours
- [MOS MEX](https://www.nws.noaa.gov/mdl/synop/mexcard.php) - Extended MAV forecast from 12 to 192 hours in advance updated every 12 hours

While these reports officially support ICAO stations in the United States and Puerto Rico, and US Virgin Islands, some other stations in North America will also work. It is recommended to request reports by ICAO station ID, but coordinate searches are accepted as well.

NOAA is retiring all GFS reports over the next few years and recommends everyone migrate to NBM. AVWX will support these GFS endpoints until NOAA retires the service, but it is highly recommended to use the NBM endpoints if you don't need GFS products specifically.

+ Parameters
    + report: `mav` (string) - GFS report type
        + Supported: `mav`, `mex`
    + location: `KJFK` (string) - ICAO & IATA station code or coordinate pair
        + Examples: `EGLL`, `51.47,-0.4`
    + options: (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`
    + airport (boolean, optional) - Only include airports when performing a coordinate search
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations when performing a coordinate search
        + Default: true
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get GFS MAV Report [GET]

Get the GFS MAV report for a specific station by ICAO & IATA station code or a lat,lon coordinate pair. The API will return the station nearest to those coordinates. Include `info` in the options to get details about the selected station.

Note: The forecast list is truncated to the first few time periods.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-04-03T20:27:56.408487+00:00Z"
            },
            "raw": "KJFK   GFS MOS GUIDANCE    4/03/2020  1200 UTC                      \nDT /APR   3/APR   4                /APR   5                /APR   6 \nHR   18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18 21 00 06 12 \nN/X                    44          55          46          56    45 \nTMP  52 53 52 49 46 44 45 52 53 52 48 48 48 47 49 53 54 53 50 49 49 \nDPT  40 39 36 35 34 34 35 37 37 37 39 39 39 39 39 38 40 41 42 40 36 \nCLD  OV OV OV OV OV OV OV OV BK OV OV OV OV OV OV OV BK BK BK CL FW \nWDR  34 34 34 35 36 36 01 02 02 15 12 14 17 17 19 19 18 18 18 33 35 \nWSP  18 19 16 14 13 12 12 12 09 09 06 05 05 04 05 06 09 09 09 06 07 \nP06        68    43    22    12     8     3    21    25    14  2  4 \nP12                    43          13          21          25     4 \nQ06         1     1     0     0     0     0     0     0     0  0  0 \nQ12                     1           0           0           0     0 \nT06      1/ 0  1/ 0  0/ 0  1/ 0  0/ 0  0/ 0  0/ 0  1/ 0  0/ 0  0/ 0 \nT12            1/ 0        1/ 0        0/ 0        1/ 0     1/ 0    \nPOZ   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0 \nPOS   0  0  0  1  2  9  1  1  0  1 10  0  0  5  0  0  0  0  0  0  0 \nTYP   R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R \nSNW                     0                       0                 0 \nCIG   5  5  6  6  6  6  5  5  6  6  6  6  6  6  5  5  6  7  7  8  8 \nVIS   6  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7 \nOBV   N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N",
            "station": "KJFK",
            "time": {
                "repr": "4/03/2020  1200",
                "dt": "2020-04-03T12:00:00+00:00Z"
            },
            "remarks": null,
            "forecast": [
                {
                    "time": {
                        "repr": "18",
                        "dt": "2020-04-03T18:00:00+00:00Z"
                    },
                    "temperature": {
                        "repr": "52",
                        "value": 52,
                        "spoken": "five two"
                    },
                    "dewpoint": {
                        "repr": "40",
                        "value": 40,
                        "spoken": "four zero"
                    },
                    "cloud": {
                        "repr": "OV",
                        "value": "overcast"
                    },
                    "precip_chance_12": null,
                    "precip_amount_12": null,
                    "thunder_storm_12": null,
                    "severe_storm_12": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_type": {
                        "repr": "R",
                        "value": "pure rain/drizzle"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wind_direction": {
                        "repr": "34",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_speed": {
                        "repr": "18",
                        "value": 18,
                        "spoken": "one eight"
                    },
                    "precip_chance_6": null,
                    "precip_amount_6": null,
                    "thunder_storm_6": null,
                    "severe_storm_6": null,
                    "ceiling": {
                        "repr": "5",
                        "value": "2000 - 3000 feet"
                    },
                    "visibility": {
                        "repr": "6",
                        "value": "6 miles"
                    },
                    "vis_obstruction": {
                        "repr": "N",
                        "value": "none"
                    }
                },
                {
                    "time": {
                        "repr": "21",
                        "dt": "2020-04-03T21:00:00+00:00Z"
                    },
                    "temperature": {
                        "repr": "53",
                        "value": 53,
                        "spoken": "five three"
                    },
                    "dewpoint": {
                        "repr": "39",
                        "value": 39,
                        "spoken": "three nine"
                    },
                    "cloud": {
                        "repr": "OV",
                        "value": "overcast"
                    },
                    "precip_chance_12": null,
                    "precip_amount_12": null,
                    "thunder_storm_12": null,
                    "severe_storm_12": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_type": {
                        "repr": "R",
                        "value": "pure rain/drizzle"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wind_direction": {
                        "repr": "34",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_speed": {
                        "repr": "19",
                        "value": 19,
                        "spoken": "one nine"
                    },
                    "precip_chance_6": null,
                    "precip_amount_6": null,
                    "thunder_storm_6": null,
                    "severe_storm_6": null,
                    "ceiling": {
                        "repr": "5",
                        "value": "2000 - 3000 feet"
                    },
                    "visibility": {
                        "repr": "7",
                        "value": "> 6 miles"
                    },
                    "vis_obstruction": {
                        "repr": "N",
                        "value": "none"
                    }
                },
                {
                    "time": {
                        "repr": "00",
                        "dt": "2020-04-04T00:00:00+00:00Z"
                    },
                    "temperature": {
                        "repr": "52",
                        "value": 52,
                        "spoken": "five two"
                    },
                    "dewpoint": {
                        "repr": "36",
                        "value": 36,
                        "spoken": "three six"
                    },
                    "cloud": {
                        "repr": "OV",
                        "value": "overcast"
                    },
                    "precip_chance_12": null,
                    "precip_amount_12": null,
                    "thunder_storm_12": null,
                    "severe_storm_12": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_type": {
                        "repr": "R",
                        "value": "pure rain/drizzle"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wind_direction": {
                        "repr": "34",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_speed": {
                        "repr": "16",
                        "value": 16,
                        "spoken": "one six"
                    },
                    "precip_chance_6": {
                        "repr": "68",
                        "value": 68,
                        "spoken": "six eight"
                    },
                    "precip_amount_6": {
                        "repr": "1",
                        "value": "0.01 to 0.09 inches"
                    },
                    "thunder_storm_6": {
                        "repr": "1",
                        "value": 1,
                        "spoken": "one"
                    },
                    "severe_storm_6": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "ceiling": {
                        "repr": "6",
                        "value": "3100 - 6500 feet"
                    },
                    "visibility": {
                        "repr": "7",
                        "value": "> 6 miles"
                    },
                    "vis_obstruction": {
                        "repr": "N",
                        "value": "none"
                    }
                },
                {
                    "time": {
                        "repr": "03",
                        "dt": "2020-04-04T03:00:00+00:00Z"
                    },
                    "temperature": {
                        "repr": "49",
                        "value": 49,
                        "spoken": "four nine"
                    },
                    "dewpoint": {
                        "repr": "35",
                        "value": 35,
                        "spoken": "three five"
                    },
                    "cloud": {
                        "repr": "OV",
                        "value": "overcast"
                    },
                    "precip_chance_12": null,
                    "precip_amount_12": null,
                    "thunder_storm_12": null,
                    "severe_storm_12": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_type": {
                        "repr": "R",
                        "value": "pure rain/drizzle"
                    },
                    "snow": {
                        "repr": "1",
                        "value": 1,
                        "spoken": "one"
                    },
                    "wind_direction": {
                        "repr": "35",
                        "value": 350,
                        "spoken": "three five zero"
                    },
                    "wind_speed": {
                        "repr": "14",
                        "value": 14,
                        "spoken": "one four"
                    },
                    "precip_chance_6": null,
                    "precip_amount_6": null,
                    "thunder_storm_6": null,
                    "severe_storm_6": null,
                    "ceiling": {
                        "repr": "6",
                        "value": "3100 - 6500 feet"
                    },
                    "visibility": {
                        "repr": "7",
                        "value": "> 6 miles"
                    },
                    "vis_obstruction": {
                        "repr": "N",
                        "value": "none"
                    }
                }
            ],
            "units": {
                "altimeter": "inHg",
                "altitude": "ft",
                "temperature": "F",
                "visibility": "sm",
                "wind_speed": "kt"
            },
            "info": {
                "city": "New York",
                "country": "US",
                "elevation_ft": 13,
                "elevation_m": 4,
                "iata": "JFK",
                "icao": "KJFK",
                "latitude": 40.63980103,
                "longitude": -73.77890015,
                "name": "John F Kennedy International Airport",
                "note": "Manhattan, New York City, NYC, Idlewild",
                "reporting": true,
                "runways": [
                    {
                        "length_ft": 14572,
                        "width_ft": 150,
                        "ident1": "13R",
                        "ident2": "31L"
                    },
                    {
                        "length_ft": 11351,
                        "width_ft": 150,
                        "ident1": "04L",
                        "ident2": "22R"
                    },
                    {
                        "length_ft": 10000,
                        "width_ft": 150,
                        "ident1": "13L",
                        "ident2": "31R"
                    },
                    {
                        "length_ft": 8400,
                        "width_ft": 200,
                        "ident1": "04R",
                        "ident2": "22L"
                    }
                ],
                "state": "NY",
                "type": "large_airport",
                "website": "http://www.panynj.gov/CommutingTravel/airports/html/kennedy.html",
                "wiki": "https://en.wikipedia.org/wiki/John_F._Kennedy_International_Airport"
            }
        }

## Parse GFS [/parse/gfs/{report}{?options,format}]

Parses a GFS report supplied by the user.

+ Parameters
    + report: `mav` (string) - GFS report type
        + Supported: `mav`, `mex`
    + options: (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Parse a Given MAV Report [POST]

Parse a user-supplied GFS report included as the plain text body of the request. The request body can be multiline or use `\n` on a single line.

Note: the documented output is truncated.

+ Request (text/plain)

    + Headers

            Authorization: Token my_secret_api_token

    + Body

            KJFK   GFS MOS GUIDANCE    4/03/2020  1200 UTC                      
            DT /APR   3/APR   4                /APR   5                /APR   6 
            HR   18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18 21 00 06 12 
            N/X                    44          55          46          56    45 
            TMP  52 53 52 49 46 44 45 52 53 52 48 48 48 47 49 53 54 53 50 49 49 
            DPT  40 39 36 35 34 34 35 37 37 37 39 39 39 39 39 38 40 41 42 40 36 
            CLD  OV OV OV OV OV OV OV OV BK OV OV OV OV OV OV OV BK BK BK CL FW 
            WDR  34 34 34 35 36 36 01 02 02 15 12 14 17 17 19 19 18 18 18 33 35 
            WSP  18 19 16 14 13 12 12 12 09 09 06 05 05 04 05 06 09 09 09 06 07 
            P06        68    43    22    12     8     3    21    25    14  2  4 
            P12                    43          13          21          25     4 
            Q06         1     1     0     0     0     0     0     0     0  0  0 
            Q12                     1           0           0           0     0 
            T06      1/ 0  1/ 0  0/ 0  1/ 0  0/ 0  0/ 0  0/ 0  1/ 0  0/ 0  0/ 0 
            T12            1/ 0        1/ 0        0/ 0        1/ 0     1/ 0    
            POZ   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0 
            POS   0  0  0  1  2  9  1  1  0  1 10  0  0  5  0  0  0  0  0  0  0 
            TYP   R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R 
            SNW                     0                       0                 0 
            CIG   5  5  6  6  6  6  5  5  6  6  6  6  6  6  5  5  6  7  7  8  8 
            VIS   6  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7 
            OBV   N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2020-04-04T21:13:36.988518+00:00Z"
            },
            "raw": "KJFK   GFS MOS GUIDANCE    4/03/2020  1200 UTC                      \nDT /APR   3/APR   4                /APR   5                /APR   6 \nHR   18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18 21 00 06 12 \nN/X                    44          55          46          56    45 \nTMP  52 53 52 49 46 44 45 52 53 52 48 48 48 47 49 53 54 53 50 49 49 \nDPT  40 39 36 35 34 34 35 37 37 37 39 39 39 39 39 38 40 41 42 40 36 \nCLD  OV OV OV OV OV OV OV OV BK OV OV OV OV OV OV OV BK BK BK CL FW \nWDR  34 34 34 35 36 36 01 02 02 15 12 14 17 17 19 19 18 18 18 33 35 \nWSP  18 19 16 14 13 12 12 12 09 09 06 05 05 04 05 06 09 09 09 06 07 \nP06        68    43    22    12     8     3    21    25    14  2  4 \nP12                    43          13          21          25     4 \nQ06         1     1     0     0     0     0     0     0     0  0  0 \nQ12                     1           0           0           0     0 \nT06      1/ 0  1/ 0  0/ 0  1/ 0  0/ 0  0/ 0  0/ 0  1/ 0  0/ 0  0/ 0 \nT12            1/ 0        1/ 0        0/ 0        1/ 0     1/ 0    \nPOZ   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0 \nPOS   0  0  0  1  2  9  1  1  0  1 10  0  0  5  0  0  0  0  0  0  0 \nTYP   R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R \nSNW                     0                       0                 0 \nCIG   5  5  6  6  6  6  5  5  6  6  6  6  6  6  5  5  6  7  7  8  8 \nVIS   6  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7  7 \nOBV   N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N",
            "station": "KJFK",
            "time": {
                "repr": "4/03/2020  1200",
                "dt": "2020-04-03T12:00:00+00:00Z"
            },
            "remarks": null,
            "forecast": [
                {
                    "time": {
                        "repr": "18",
                        "dt": "2020-04-03T18:00:00+00:00Z"
                    },
                    "temperature": {
                        "repr": "52",
                        "value": 52,
                        "spoken": "five two"
                    },
                    "dewpoint": {
                        "repr": "40",
                        "value": 40,
                        "spoken": "four zero"
                    },
                    "cloud": {
                        "repr": "OV",
                        "value": "overcast"
                    },
                    "precip_chance_12": null,
                    "precip_amount_12": null,
                    "thunder_storm_12": null,
                    "severe_storm_12": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_type": {
                        "repr": "R",
                        "value": "pure rain/drizzle"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wind_direction": {
                        "repr": "34",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_speed": {
                        "repr": "18",
                        "value": 18,
                        "spoken": "one eight"
                    },
                    "precip_chance_6": null,
                    "precip_amount_6": null,
                    "thunder_storm_6": null,
                    "severe_storm_6": null,
                    "ceiling": {
                        "repr": "5",
                        "value": "2000 - 3000 feet"
                    },
                    "visibility": {
                        "repr": "6",
                        "value": "6 miles"
                    },
                    "vis_obstruction": {
                        "repr": "N",
                        "value": "none"
                    }
                },
                {
                    "time": {
                        "repr": "21",
                        "dt": "2020-04-03T21:00:00+00:00Z"
                    },
                    "temperature": {
                        "repr": "53",
                        "value": 53,
                        "spoken": "five three"
                    },
                    "dewpoint": {
                        "repr": "39",
                        "value": 39,
                        "spoken": "three nine"
                    },
                    "cloud": {
                        "repr": "OV",
                        "value": "overcast"
                    },
                    "precip_chance_12": null,
                    "precip_amount_12": null,
                    "thunder_storm_12": null,
                    "severe_storm_12": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_type": {
                        "repr": "R",
                        "value": "pure rain/drizzle"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wind_direction": {
                        "repr": "34",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_speed": {
                        "repr": "19",
                        "value": 19,
                        "spoken": "one nine"
                    },
                    "precip_chance_6": null,
                    "precip_amount_6": null,
                    "thunder_storm_6": null,
                    "severe_storm_6": null,
                    "ceiling": {
                        "repr": "5",
                        "value": "2000 - 3000 feet"
                    },
                    "visibility": {
                        "repr": "7",
                        "value": "> 6 miles"
                    },
                    "vis_obstruction": {
                        "repr": "N",
                        "value": "none"
                    }
                },
                {
                    "time": {
                        "repr": "00",
                        "dt": "2020-04-04T00:00:00+00:00Z"
                    },
                    "temperature": {
                        "repr": "52",
                        "value": 52,
                        "spoken": "five two"
                    },
                    "dewpoint": {
                        "repr": "36",
                        "value": 36,
                        "spoken": "three six"
                    },
                    "cloud": {
                        "repr": "OV",
                        "value": "overcast"
                    },
                    "precip_chance_12": null,
                    "precip_amount_12": null,
                    "thunder_storm_12": null,
                    "severe_storm_12": null,
                    "freezing_precip": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "precip_type": {
                        "repr": "R",
                        "value": "pure rain/drizzle"
                    },
                    "snow": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "wind_direction": {
                        "repr": "34",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_speed": {
                        "repr": "16",
                        "value": 16,
                        "spoken": "one six"
                    },
                    "precip_chance_6": {
                        "repr": "68",
                        "value": 68,
                        "spoken": "six eight"
                    },
                    "precip_amount_6": {
                        "repr": "1",
                        "value": "0.01 to 0.09 inches"
                    },
                    "thunder_storm_6": {
                        "repr": "1",
                        "value": 1,
                        "spoken": "one"
                    },
                    "severe_storm_6": {
                        "repr": "0",
                        "value": 0,
                        "spoken": "zero"
                    },
                    "ceiling": {
                        "repr": "6",
                        "value": "3100 - 6500 feet"
                    },
                    "visibility": {
                        "repr": "7",
                        "value": "> 6 miles"
                    },
                    "vis_obstruction": {
                        "repr": "N",
                        "value": "none"
                    }
                },
                ...
            ]
        }

## Multiple Reports [/multi/{report_type}/{locations}{?options,format,onfail}]

This endpoint returns the results for multiple stations for a given report type (`metar`, `taf`). It accepts the same request parameters as normal METAR and TAF requests, but accepts a comma-separated string of up to 10 stations in one call.

+ Parameters

    + report_type: `metar` (string) - Weather report type
        + Supported: `metar`, `taf`
    + locations: `KJFK,KSFO` (string) - Comma-separated string of up to 10 ICAO & IATA station codes
    + options: `speech` (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + format (string, optional) - Desired response format
        + supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get METAR Reports [GET]

Shows a request for KJFK and KSFO in a single API call.

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "KMCO": {
                "meta": {
                    "timestamp": "2020-04-03T19:36:59.397204+00:00Z"
                },
                "altimeter": {
                    "repr": "A2995",
                    "value": 29.95,
                    "spoken": "two nine point nine five"
                },
                "clouds": [
                    {
                        "repr": "FEW050",
                        "type": "FEW",
                        "altitude": 50,
                        "modifier": null,
                        "direction": null
                    },
                    {
                        "repr": "SCT300",
                        "type": "SCT",
                        "altitude": 300,
                        "modifier": null,
                        "direction": null
                    }
                ],
                "flight_rules": "VFR",
                "other": [],
                "sanitized": "KMCO 031853Z 03007KT 020V080 10SM FEW050 SCT300 28/09 A2995 RMK AO2 SLP139 T02780094",
                "visibility": {
                    "repr": "10",
                    "value": 10,
                    "spoken": "one zero"
                },
                "wind_direction": {
                    "repr": "030",
                    "value": 30,
                    "spoken": "zero three zero"
                },
                "wind_gust": null,
                "wind_speed": {
                    "repr": "07",
                    "value": 7,
                    "spoken": "seven"
                },
                "wx_codes": [],
                "raw": "KMCO 031853Z 03007KT 020V080 10SM FEW050 SCT300 28/09 A2995 RMK AO2 SLP139 T02780094",
                "station": "KMCO",
                "time": {
                    "repr": "031853Z",
                    "dt": "2020-04-03T18:53:00+00:00Z"
                },
                "remarks": "RMK AO2 SLP139 T02780094",
                "dewpoint": {
                    "repr": "09",
                    "value": 9,
                    "spoken": "nine"
                },
                "remarks_info": {
                    "dewpoint_decimal": {
                        "repr": "9.4",
                        "value": 9.4,
                        "spoken": "nine point four"
                    },
                    "temperature_decimal": {
                        "repr": "27.8",
                        "value": 27.8,
                        "spoken": "two seven point eight"
                    }
                },
                "runway_visibility": [],
                "temperature": {
                    "repr": "28",
                    "value": 28,
                    "spoken": "two eight"
                },
                "wind_variable_direction": [
                    {
                        "repr": "020",
                        "value": 20,
                        "spoken": "zero two zero"
                    },
                    {
                        "repr": "080",
                        "value": 80,
                        "spoken": "zero eight zero"
                    }
                ],
                "units": {
                    "altimeter": "inHg",
                    "altitude": "ft",
                    "temperature": "C",
                    "visibility": "sm",
                    "wind_speed": "kt"
                },
                "speech": "Winds zero three zero (variable zero two zero to zero eight zero) at 7kt. Visibility one zero miles. Temperature two eight degrees Celsius. Dew point nine degrees Celsius. Altimeter two nine point nine five. Few clouds at 5000ft. Scattered clouds at 30000ft"
            },
            "KLEX": {
                "meta": {
                    "timestamp": "2020-04-03T19:36:59.397156+00:00Z"
                },
                "altimeter": {
                    "repr": "A3006",
                    "value": 30.06,
                    "spoken": "three zero point zero six"
                },
                "clouds": [],
                "flight_rules": "VFR",
                "other": [],
                "sanitized": "KLEX 031854Z 35004KT 9SM 18/04 A3006 RMK AO2 SLP179 T01780039",
                "visibility": {
                    "repr": "9",
                    "value": 9,
                    "spoken": "nine"
                },
                "wind_direction": {
                    "repr": "350",
                    "value": 350,
                    "spoken": "three five zero"
                },
                "wind_gust": null,
                "wind_speed": {
                    "repr": "04",
                    "value": 4,
                    "spoken": "four"
                },
                "wx_codes": [],
                "raw": "KLEX 031854Z 35004KT 9SM CLR 18/04 A3006 RMK AO2 SLP179 T01780039",
                "station": "KLEX",
                "time": {
                    "repr": "031854Z",
                    "dt": "2020-04-03T18:54:00+00:00Z"
                },
                "remarks": "RMK AO2 SLP179 T01780039",
                "dewpoint": {
                    "repr": "04",
                    "value": 4,
                    "spoken": "four"
                },
                "remarks_info": {
                    "dewpoint_decimal": {
                        "repr": "3.9",
                        "value": 3.9,
                        "spoken": "three point nine"
                    },
                    "temperature_decimal": {
                        "repr": "17.8",
                        "value": 17.8,
                        "spoken": "one seven point eight"
                    }
                },
                "runway_visibility": [],
                "temperature": {
                    "repr": "18",
                    "value": 18,
                    "spoken": "one eight"
                },
                "wind_variable_direction": [],
                "units": {
                    "altimeter": "inHg",
                    "altitude": "ft",
                    "temperature": "C",
                    "visibility": "sm",
                    "wind_speed": "kt"
                },
                "speech": "Winds three five zero at 4kt. Visibility nine miles. Temperature one eight degrees Celsius. Dew point four degrees Celsius. Altimeter three zero point zero six. Sky clear"
            }
        }

## Nearest Reports [/{report_type}/near/{coord}{?n,options,airport,reporting,format,onfail}]

Returns the nearest weather reports to a coordinate pair. By default, these are only reporting stations, but this can be disabled to return smaller airports with non-reporting AWOS/ASOS as well. This endpoint is limited to paid plans, and the `n` parameter is limitted to 10 while enterprise plans can go up to 200.

+ Parameters
    + report_type: `metar` (string) - Weather report type
        + Supported: `metar`, `taf`
    + coord: `28.1,-81` (string) - Coordinate pair
    + n: 2 (number, optional) - Number of stations to return
        + Default: 10
    + options (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + airport (boolean, optional) - Only include airports
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations
        + Default: true
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get METARs around a coordinate [GET]

This example returns METARs around Melbourne Beach, FL

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        [
            {
                "meta": {
                    "timestamp": "2021-03-21T20:27:18.552801Z",
                    "stations_updated": "2021-03-07"
                },
                "altimeter": {
                    "repr": "A2998",
                    "value": 29.98,
                    "spoken": "two nine point nine eight"
                },
                "clouds": [
                    {
                        "repr": "BKN028",
                        "type": "BKN",
                        "base": 28,
                        "top": null,
                        "modifier": null,
                        "direction": null
                    }
                ],
                "flight_rules": "MVFR",
                "other": [],
                "sanitized": "KMLB 212008Z 30012KT 10SM BKN028 20/12 A2998 RMK AO2 T02000117",
                "visibility": {
                    "repr": "10",
                    "value": 10,
                    "spoken": "one zero"
                },
                "wind_direction": {
                    "repr": "300",
                    "value": 300,
                    "spoken": "three zero zero"
                },
                "wind_gust": null,
                "wind_speed": {
                    "repr": "12",
                    "value": 12,
                    "spoken": "one two"
                },
                "wx_codes": [],
                "raw": "KMLB 212008Z 30012KT 10SM BKN028 20/12 A2998 RMK AO2 T02000117",
                "station": "KMLB",
                "time": {
                    "repr": "212008Z",
                    "dt": "2021-03-21T20:08:00Z"
                },
                "remarks": "RMK AO2 T02000117",
                "dewpoint": {
                    "repr": "12",
                    "value": 12,
                    "spoken": "one two"
                },
                "remarks_info": {
                    "dewpoint_decimal": {
                        "repr": "11.7",
                        "value": 11.7,
                        "spoken": "one one point seven"
                    },
                    "temperature_decimal": {
                        "repr": "20.0",
                        "value": 20.0,
                        "spoken": "two zero point zero"
                    }
                },
                "runway_visibility": [],
                "temperature": {
                    "repr": "20",
                    "value": 20,
                    "spoken": "two zero"
                },
                "wind_variable_direction": [],
                "units": {
                    "altimeter": "inHg",
                    "altitude": "ft",
                    "temperature": "C",
                    "visibility": "sm",
                    "wind_speed": "kt"
                },
                "distance": {
                    "coordinate_distance": 0.35470923554481676,
                    "nautical_miles": 18.78651343315188,
                    "miles": 21.619133558889388,
                    "kilometers": 34.792622878197285
                }
            },
            {
                "meta": {
                    "timestamp": "2021-03-21T20:27:18.533417Z",
                    "stations_updated": "2021-03-07"
                },
                "altimeter": {
                    "repr": "A2998",
                    "value": 29.98,
                    "spoken": "two nine point nine eight"
                },
                "clouds": [],
                "flight_rules": "VFR",
                "other": [],
                "sanitized": "KCOF 211956Z 28012KT 10SM 21/10 A2998 RMK AO2 SLP157 T02140102 $",
                "visibility": {
                    "repr": "10",
                    "value": 10,
                    "spoken": "one zero"
                },
                "wind_direction": {
                    "repr": "280",
                    "value": 280,
                    "spoken": "two eight zero"
                },
                "wind_gust": null,
                "wind_speed": {
                    "repr": "12",
                    "value": 12,
                    "spoken": "one two"
                },
                "wx_codes": [],
                "raw": "KCOF 211956Z AUTO 28012KT 10SM CLR 21/10 A2998 RMK AO2 SLP157 T02140102 $",
                "station": "KCOF",
                "time": {
                    "repr": "211956Z",
                    "dt": "2021-03-21T19:56:00Z"
                },
                "remarks": "RMK AO2 SLP157 T02140102 $",
                "dewpoint": {
                    "repr": "10",
                    "value": 10,
                    "spoken": "one zero"
                },
                "remarks_info": {
                    "dewpoint_decimal": {
                        "repr": "10.2",
                        "value": 10.2,
                        "spoken": "one zero point two"
                    },
                    "temperature_decimal": {
                        "repr": "21.4",
                        "value": 21.4,
                        "spoken": "two one point four"
                    }
                },
                "runway_visibility": [],
                "temperature": {
                    "repr": "21",
                    "value": 21,
                    "spoken": "two one"
                },
                "wind_variable_direction": [],
                "units": {
                    "altimeter": "inHg",
                    "altitude": "ft",
                    "temperature": "C",
                    "visibility": "sm",
                    "wind_speed": "kt"
                },
                "distance": {
                    "coordinate_distance": 0.41257732917308576,
                    "nautical_miles": 22.169888967435707,
                    "miles": 25.512652588688884,
                    "kilometers": 41.05863436769093
                }
            }
        ]

## Report Search [/search/{report_type}{?text,n,options,airport,reporting,format,onfail}]

Returns weather reports by searching for stations by ICAO, IATA, name, city, and state. By default, these are only reporting stations, but this can be disabled to return smaller airports with non-reporting AWOS/ASOS as well. This endpoint is limited to paid plans, and the `n` parameter is limitted to 10 while enterprise plans can go up to 200.

+ Parameters
    + report_type: `metar` (string) - Weather report type
        + Supported: `metar`, `taf`
    + text: `lihue%20hi` (string) - Search text
    + n: 2 (number, optional) - Max results to return. Smaller numbers are more likely to not reach max
        + Default: 10
    + options (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + airport (boolean, optional) - Only include airports
        + Default: true
    + reporting (boolean, optional) - Only include reporting stations
        + Default: true
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`
    + onfail (string, optional) - Error or use out-of-date cache when unable to fetch report
        + Supported: `cache`, `error`
        + Default: `cache`

### Get METARs via text search [GET]

This example returns METARs for "lihue hi"

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        [
            {
                "meta": {
                    "timestamp": "2021-03-21T20:33:52.788895Z",
                    "stations_updated": "2021-03-07",
                    "cache-timestamp": "2021-03-21T20:33:37.128000Z"
                },
                "altimeter": {
                    "repr": "A3026",
                    "value": 30.26,
                    "spoken": "three zero point two six"
                },
                "clouds": [
                    {
                        "repr": "FEW032",
                        "type": "FEW",
                        "base": 32,
                        "top": null,
                        "modifier": null,
                        "direction": null
                    },
                    {
                        "repr": "SCT055",
                        "type": "SCT",
                        "base": 55,
                        "top": null,
                        "modifier": null,
                        "direction": null
                    }
                ],
                "flight_rules": "VFR",
                "other": [],
                "sanitized": "PHLI 211953Z 06017KT 10SM FEW032 SCT055 23/16 A3026 RMK AO2 SLP243 T02330161 $",
                "visibility": {
                    "repr": "10",
                    "value": 10,
                    "spoken": "one zero"
                },
                "wind_direction": {
                    "repr": "060",
                    "value": 60,
                    "spoken": "zero six zero"
                },
                "wind_gust": null,
                "wind_speed": {
                    "repr": "17",
                    "value": 17,
                    "spoken": "one seven"
                },
                "wx_codes": [],
                "raw": "PHLI 211953Z 06017KT 10SM FEW032 SCT055 23/16 A3026 RMK AO2 SLP243 T02330161 $",
                "station": "PHLI",
                "time": {
                    "repr": "211953Z",
                    "dt": "2021-03-21T19:53:00Z"
                },
                "remarks": "RMK AO2 SLP243 T02330161 $",
                "dewpoint": {
                    "repr": "16",
                    "value": 16,
                    "spoken": "one six"
                },
                "remarks_info": {
                    "dewpoint_decimal": {
                        "repr": "16.1",
                        "value": 16.1,
                        "spoken": "one six point one"
                    },
                    "temperature_decimal": {
                        "repr": "23.3",
                        "value": 23.3,
                        "spoken": "two three point three"
                    }
                },
                "runway_visibility": [],
                "temperature": {
                    "repr": "23",
                    "value": 23,
                    "spoken": "two three"
                },
                "wind_variable_direction": [],
                "units": {
                    "altimeter": "inHg",
                    "altitude": "ft",
                    "temperature": "C",
                    "visibility": "sm",
                    "wind_speed": "kt"
                }
            }
        ]

## Report Routing [/path/{report_type}{?route,distance,options,format}]

Find weather reports along a flight path. See notes on routing above.

+ Parameters
    + report_type: `metar` (string) - Weather report type
        + Supported: `metar`, `taf, airsigmet`
    + route: `KMCO;ORL;KDAB` (string) - Flight route with ICAO, navaid, and coordinate components
    + distance: 5 (number) - Distance in statue miles from route centerline. Does not apply to `airsigmet`
    + options (string, optional) - Additional options to include as comma-separated string
        + Supported: `info`, `translate`, `summary`, `speech`
        + Example: `info,speech`
    + format (string, optional) - Desired response format
        + Supported: `json`, `xml`, `yaml`
        + Default: `json`

### Get stations along a flight path [GET]

This example returns weather reports along a flight path from Orlando to Daytona Beach, FL.

+ Request

    + Headers
    
            Authorization: Token my_secret_api_token

+ Response 200 (application/json)

        {
            "meta": {
                "timestamp": "2021-04-01T17:51:19.990666Z",
                "stations_updated": "2021-03-26"
            },
            "route": [
                {
                    "lat": 28.429399490356445,
                    "lon":-81.30899810791016,
                    "repr": "KMCO"
                },
                {
                    "lat": 28.542699813842773,
                    "lon": -81.33499908447266,
                    "repr": "ORL"
                },
                {
                    "lat": 29.179899,
                    "lon": -81.058098,
                    "repr": "KDAB"
                }
            ],
            "results": [
                {
                    "altimeter": {
                        "repr": "A3009",
                        "value": 30.09,
                        "spoken": "three zero point zero nine"
                    },
                    "clouds": [
                        {
                            "repr": "SCT013",
                            "type": "SCT",
                            "base": 13,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "OVC022",
                            "type": "OVC",
                            "base": 22,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KORL 011653Z 36014KT 9SM SCT013 OVC022 20/16 A3009 RMK AO2 SLP192 T02000161 $",
                    "visibility": {
                        "repr": "9",
                        "value": 9,
                        "spoken": "nine"
                    },
                    "wind_direction": {
                        "repr": "360",
                        "value": 360,
                        "spoken": "three six zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "14",
                        "value": 14,
                        "spoken": "one four"
                    },
                    "wx_codes": [],
                    "raw": "KORL 011653Z 36014KT 9SM SCT013 OVC022 20/16 A3009 RMK AO2 SLP192 T02000161 $",
                    "station": "KORL",
                    "time": {
                        "repr": "011653Z",
                        "dt": "2021-04-01T16:53:00Z"
                    },
                    "remarks": "RMK AO2 SLP192 T02000161 $",
                    "dewpoint": {
                        "repr": "16",
                        "value": 16,
                        "spoken": "one six"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "16.1",
                            "value": 16.1,
                            "spoken": "one six point one"
                        },
                        "temperature_decimal": {
                            "repr": "20.0",
                            "value": 20.0,
                            "spoken": "two zero point zero"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "20",
                        "value": 20,
                        "spoken": "two zero"
                    },
                    "wind_variable_direction": []
                },
                {
                    "altimeter": {
                        "repr": "A3006",
                        "value": 30.06,
                        "spoken": "three zero point zero six"
                    },
                    "clouds": [
                        {
                            "repr": "BKN027",
                            "type": "BKN",
                            "base": 27,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "OVC035",
                            "type": "OVC",
                            "base": 35,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KMCO 011653Z 34013KT 10SM BKN027 OVC035 22/17 A3006 RMK AO2 SLP178 T02220172",
                    "visibility": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_direction": {
                        "repr": "340",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "13",
                        "value": 13,
                        "spoken": "one three"
                    },
                    "wx_codes": [],
                    "raw": "KMCO 011653Z 34013KT 10SM BKN027 OVC035 22/17 A3006 RMK AO2 SLP178 T02220172",
                    "station": "KMCO",
                    "time": {
                        "repr": "011653Z",
                        "dt": "2021-04-01T16:53:00Z"
                    },
                    "remarks": "RMK AO2 SLP178 T02220172",
                    "dewpoint": {
                        "repr": "17",
                        "value": 17,
                        "spoken": "one seven"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "17.2",
                            "value": 17.2,
                            "spoken": "one seven point two"
                        },
                        "temperature_decimal": {
                            "repr": "22.2",
                            "value": 22.2,
                            "spoken": "two two point two"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "22",
                        "value": 22,
                        "spoken": "two two"
                    },
                    "wind_variable_direction": []
                },
                {
                    "altimeter": {
                        "repr": "A3006",
                        "value": 30.06,
                        "spoken": "three zero point zero six"
                    },
                    "clouds": [
                        {
                            "repr": "BKN027",
                            "type": "BKN",
                            "base": 27,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "OVC034",
                            "type": "OVC",
                            "base": 34,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KMCO 011643Z 32012KT 10SM BKN027 OVC034 23/17 A3006 RMK AO2 T02280172",
                    "visibility": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_direction": {
                        "repr": "320",
                        "value": 320,
                        "spoken": "three two zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "12",
                        "value": 12,
                        "spoken": "one two"
                    },
                    "wx_codes": [],
                    "raw": "KMCO 011643Z 32012KT 10SM BKN027 OVC034 23/17 A3006 RMK AO2 T02280172",
                    "station": "KMCO",
                    "time": {
                        "repr": "011643Z",
                        "dt": "2021-04-01T16:43:00Z"
                    },
                    "remarks": "RMK AO2 T02280172",
                    "dewpoint": {
                        "repr": "17",
                        "value": 17,
                        "spoken": "one seven"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "17.2",
                            "value": 17.2,
                            "spoken": "one seven point two"
                        },
                        "temperature_decimal": {
                            "repr": "22.8",
                            "value": 22.8,
                            "spoken": "two two point eight"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "23",
                        "value": 23,
                        "spoken": "two three"
                    },
                    "wind_variable_direction": []
                },
                {
                    "altimeter": {
                        "repr": "A3009",
                        "value": 30.09,
                        "spoken": "three zero point zero nine"
                    },
                    "clouds": [
                        {
                            "repr": "SCT008",
                            "type": "SCT",
                            "base": 8,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "SCT013",
                            "type": "SCT",
                            "base": 13,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "OVC018",
                            "type": "OVC",
                            "base": 18,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KSFB 011653Z 33015G20KT 10SM SCT008 SCT013 OVC018 18/12 A3009 RMK AO2 SLP189 T01830122",
                    "visibility": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_direction": {
                        "repr": "330",
                        "value": 330,
                        "spoken": "three three zero"
                    },
                    "wind_gust": {
                        "repr": "20",
                        "value": 20,
                        "spoken": "two zero"
                    },
                    "wind_speed": {
                        "repr": "15",
                        "value": 15,
                        "spoken": "one five"
                    },
                    "wx_codes": [],
                    "raw": "KSFB 011653Z 33015G20KT 10SM SCT008 SCT013 OVC018 18/12 A3009 RMK AO2 SLP189 T01830122",
                    "station": "KSFB",
                    "time": {
                        "repr": "011653Z",
                        "dt": "2021-04-01T16:53:00Z"
                    },
                    "remarks": "RMK AO2 SLP189 T01830122",
                    "dewpoint": {
                        "repr": "12",
                        "value": 12,
                        "spoken": "one two"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "12.2",
                            "value": 12.2,
                            "spoken": "one two point two"
                        },
                        "temperature_decimal": {
                            "repr": "18.3",
                            "value": 18.3,
                            "spoken": "one eight point three"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "18",
                        "value": 18,
                        "spoken": "one eight"
                    },
                    "wind_variable_direction": []
                },
                {
                    "altimeter": {
                        "repr": "A3009",
                        "value": 30.09,
                        "spoken": "three zero point zero nine"
                    },
                    "clouds": [
                        {
                            "repr": "BKN013",
                            "type": "BKN",
                            "base": 13,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        },
                        {
                            "repr": "OVC020",
                            "type": "OVC",
                            "base": 20,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KORL 011703Z 34012G20KT 10SM BKN013 OVC020 19/16 A3009 RMK AO2 T01940156 $",
                    "visibility": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_direction": {
                        "repr": "340",
                        "value": 340,
                        "spoken": "three four zero"
                    },
                    "wind_gust": {
                        "repr": "20",
                        "value": 20,
                        "spoken": "two zero"
                    },
                    "wind_speed": {
                        "repr": "12",
                        "value": 12,
                        "spoken": "one two"
                    },
                    "wx_codes": [],
                    "raw": "KORL 011703Z 34012G20KT 10SM BKN013 OVC020 19/16 A3009 RMK AO2 T01940156 $",
                    "station": "KORL",
                    "time": {
                        "repr": "011703Z",
                        "dt": "2021-04-01T17:03:00Z"
                    },
                    "remarks": "RMK AO2 T01940156 $",
                    "dewpoint": {
                        "repr": "16",
                        "value": 16,
                        "spoken": "one six"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "15.6",
                            "value": 15.6,
                            "spoken": "one five point six"
                        },
                        "temperature_decimal": {
                            "repr": "19.4",
                            "value": 19.4,
                            "spoken": "one nine point four"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "19",
                        "value": 19,
                        "spoken": "one nine"
                    },
                    "wind_variable_direction": []
                },
                {
                    "altimeter": {
                        "repr": "A3010",
                        "value": 30.1,
                        "spoken": "three zero point one zero"
                    },
                    "clouds": [
                        {
                            "repr": "OVC030",
                            "type": "OVC",
                            "base": 30,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KDAB 011719Z 33009KT 10SM OVC030 18/05 A3010 RMK AO2 T01830050",
                    "visibility": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_direction": {
                        "repr": "330",
                        "value": 330,
                        "spoken": "three three zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "09",
                        "value": 9,
                        "spoken": "nine"
                    },
                    "wx_codes": [],
                    "raw": "KDAB 011719Z 33009KT 10SM OVC030 18/05 A3010 RMK AO2 T01830050",
                    "station": "KDAB",
                    "time": {
                        "repr": "011719Z",
                        "dt": "2021-04-01T17:19:00Z"
                    },
                    "remarks": "RMK AO2 T01830050",
                    "dewpoint": {
                        "repr": "05",
                        "value": 5,
                        "spoken": "five"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "5.0",
                            "value": 5.0,
                            "spoken": "five point zero"
                        },
                        "temperature_decimal": {
                            "repr": "18.3",
                            "value": 18.3,
                            "spoken": "one eight point three"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "18",
                        "value": 18,
                        "spoken": "one eight"
                    },
                    "wind_variable_direction": []
                },
                {
                    "altimeter": {
                        "repr": "A3010",
                        "value": 30.1,
                        "spoken": "three zero point one zero"
                    },
                    "clouds": [
                        {
                            "repr": "OVC026",
                            "type": "OVC",
                            "base": 26,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KDAB 011653Z 33009KT 10SM OVC026 18/06 A3010 RMK AO2 SLP191 T01780061",
                    "visibility": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_direction": {
                        "repr": "330",
                        "value": 330,
                        "spoken": "three three zero"
                    },
                    "wind_gust": null,
                    "wind_speed": {
                        "repr": "09",
                        "value": 9,
                        "spoken": "nine"
                    },
                    "wx_codes": [],
                    "raw": "KDAB 011653Z 33009KT 10SM OVC026 18/06 A3010 RMK AO2 SLP191 T01780061",
                    "station": "KDAB",
                    "time": {
                        "repr": "011653Z",
                        "dt": "2021-04-01T16:53:00Z"
                    },
                    "remarks": "RMK AO2 SLP191 T01780061",
                    "dewpoint": {
                        "repr": "06",
                        "value": 6,
                        "spoken": "six"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "6.1",
                            "value": 6.1,
                            "spoken": "six point one"
                        },
                        "temperature_decimal": {
                            "repr": "17.8",
                            "value": 17.8,
                            "spoken": "one seven point eight"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "18",
                        "value": 18,
                        "spoken": "one eight"
                    },
                    "wind_variable_direction": []
                },
                {
                    "altimeter": {
                        "repr": "A3009",
                        "value": 30.09,
                        "spoken": "three zero point zero nine"
                    },
                    "clouds": [
                        {
                            "repr": "OVC015",
                            "type": "OVC",
                            "base": 15,
                            "top": null,
                            "modifier": null,
                            "direction": null
                        }
                    ],
                    "flight_rules": "MVFR",
                    "other": [],
                    "sanitized": "KORL 011712Z 35014G18KT 10SM OVC015 19/16 A3009 RMK AO2 T01940156 $",
                    "visibility": {
                        "repr": "10",
                        "value": 10,
                        "spoken": "one zero"
                    },
                    "wind_direction": {
                        "repr": "350",
                        "value": 350,
                        "spoken": "three five zero"
                    },
                    "wind_gust": {
                        "repr": "18",
                        "value": 18,
                        "spoken": "one eight"
                    },
                    "wind_speed": {
                        "repr": "14",
                        "value": 14,
                        "spoken": "one four"
                    },
                    "wx_codes": [],
                    "raw": "KORL 011712Z 35014G18KT 10SM OVC015 19/16 A3009 RMK AO2 T01940156 $",
                    "station": "KORL",
                    "time": {
                        "repr": "011712Z",
                        "dt": "2021-04-01T17:12:00Z"
                    },
                    "remarks": "RMK AO2 T01940156 $",
                    "dewpoint": {
                        "repr": "16",
                        "value": 16,
                        "spoken": "one six"
                    },
                    "remarks_info": {
                        "dewpoint_decimal": {
                            "repr": "15.6",
                            "value": 15.6,
                            "spoken": "one five point six"
                        },
                        "temperature_decimal": {
                            "repr": "19.4",
                            "value": 19.4,
                            "spoken": "one nine point four"
                        }
                    },
                    "runway_visibility": [],
                    "temperature": {
                        "repr": "19",
                        "value": 19,
                        "spoken": "one nine"
                    },
                    "wind_variable_direction": []
                }
            ]
        }